본문 바로가기

Algorithm/C++149

[백준 15688] 수 정렬하기 5 15688번: 수 정렬하기 5 (acmicpc.net) 15688번: 수 정렬하기 5 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이며, 같은 수가 여러 번 중복될 수도 있다. www.acmicpc.net 배운것 수의 범위가 어느 정도 한정적일 때에만 Counting Sort를 쓸 수 있음 수의 범위가 대략 1000만 이하일때에는 카운팅 소트를 쓰고 그렇지 않을 경우에는 카운팅 소트를 쓰지 못한다고 생각하기 - 수가 -1,000,000에서 1,000,000인게 껄끄러우니 freq 배열의 인덱스에 접근할 때는 13번째 줄 처럼 100만을 더하고 freq 배열의 값을 보며 수를 출력.. 2022. 9. 21.
[백준 18808] 스티커 붙이기 18808번: 스티커 붙이기 (acmicpc.net) 배운 것 1. 스티커를 특정 영역에 붙일 수 있는지 확인하고 붙이기 (함수로 빼기) 2. 스티커를 회전하기 (함수로 빼기) 복잡한 절차들은 함수로 빼서 처리할 수 있다. 정답 코드 // Authored by : BaaaaaaaaaaarkingDog // Co-authored by : - // http://boj.kr/6a7f35306b1446b1b01b057263879295 #include using namespace std; int n, m, k; int note[42][42]; int r, c; int paper[12][12]; // paper를 90도 회전하는 함수 void rotate(){ int tmp[12][12]; for(int i = 0.. 2022. 9. 20.
[백준 15655] N과 M (6) 15655번: N과 M (6) (acmicpc.net) 15655번: N과 M (6) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 정답 풀이 #include using namespace std; int n, m; int arr[10]; bool isused[10]; int num[10]; void func(int k){ // 현재 k개까지 수를 택했음. if(k == m){ // m개를 모두 택했으면 for(int i = 0; i m; for(int i = 0; i > n.. 2022. 9. 19.
[백준 15656] N과 M (7) 15656번: N과 M (7) (acmicpc.net) 정답 풀이 // http://boj.kr/8b9c11f721a44186bb4da3bff5e72f88 #include using namespace std; int n, m; int arr[10]; int num[10]; void func(int k){ // 현재 k개까지 수를 택했음. if(k == m){ // m개를 모두 택했으면 for(int i = 0; i m; for(int i = 0; i > num[i]; } sort(num, num+n); func(0); } 2022. 9. 19.
[백준 15654] N과 M (5) 15654번: N과 M (5) (acmicpc.net) 15654번: N과 M (5) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 배운것 int arr[] 를 sort 할 때 : sort(arr, arr+n); vetor arr를 sort할 때: sort(arr.begin(), arr.end()) 내 풀이 #include using namespace std; int n, m; int a[10]; int t[10]; bool isused[10]; void func(int k) { // 현재 k개까지 수를 택했음. if (k == .. 2022. 9. 16.
[백준 15652] N과 M (4) 15652번: N과 M (4) (acmicpc.net) 15652번: N과 M (4) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 정답 코드 #include using namespace std; int n, m; int arr[10]; void func(int k){ // 현재 k개까지 수를 택했음. if(k == m){ // m개를 모두 택했으면 for(int i = 0; i < m; i++) cout m; func(0); } 2022. 9. 16.