본문 바로가기

컴퓨터/백준 알고리즘

(177)
백준 알고리즘 9093번: 단어 뒤집기 [C++] 문제 출처: www.acmicpc.net/problem/9093 9093번: 단어 뒤집기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 www.acmicpc.net 1. 코드 #include #include #include using namespace std; int main(void) { int n; cin >> n; cin.ignore();//입력 버퍼 지워주기(cin 사용 후 \n가 입력버퍼에 남아있어서 getline에서 입력 처리가 된다.) while (n--) { string arr; getline(cin, arr);//띄어쓰기 포함한 문자열 ..
백준 알고리즘 5086번: 배수와 약수 [C++] 문제 출처: www.acmicpc.net/problem/5086 5086번: 배수와 약수 각 테스트 케이스마다 첫 번째 숫자가 두 번째 숫자의 약수라면 factor를, 배수라면 multiple을, 둘 다 아니라면 neither를 출력한다. www.acmicpc.net 1. 코드 #include using namespace std; int main(void) { int n1, n2; while (1) { cin >> n1 >> n2; if (n1 == 0 && n2 == 0) break; else if (n2 % n1 == 0) cout
백준 알고리즘 10828번: 스택 [C++] 문제 출처: www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 1. 코드 #include #include using namespace std; int arr[10001]; int index; void push(int number) { arr[index] = number; index++; } int size() { return index; } int top() { return (!size()) ? -1 : arr[index - 1]; } boo..
백준 알고리즘 11399번: ATM [C++] 문제 출처: www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 1. 코드 #include #include using namespace std; int main(void) { int n; int arr[1001]; int result[1001]; int sum; cin >> n; for (int i = 0; i > arr[i]; sort(arr, arr + n); sum = result[0] = arr[0]; for (int i = 1; i < n; i++) { r..
백준 알고리즘 11047번: 동전 0 [C++] 문제 출처: www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 1. 코드 #include using namespace std; int n, k, sum; int arr[10]; int main(void) { cin >> n >> k; for (int i = 0; i > arr[i]; for (int i = n - 1; i >= 0; i--) { if (k >= arr[i..
백준 알고리즘 9095번: 1, 2, 3 더하기 [C++] 문제 출처: www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 1. 코드 #include using namespace std; int main(void) { int t; int n; int arr[11] = { 1, 1, 2 }; cin >> t; for (int i = 3; i > n; cout
백준 알고리즘 11727번: 2×n 타일링 2 [C++] 문제 출처: www.acmicpc.net/problem/11727 11727번: 2×n 타일링 2 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. www.acmicpc.net 1. 코드 #include using namespace std; int n; int arr[1001]; int solution(int deep) { if (deep == 0) return arr[0] = 1; if (deep == 1) return arr[1] = 1; if (arr[deep]) return arr[deep]; else return arr[deep] = (solution(deep - 1) + (solution(d..
백준 알고리즘 11726: 2×n 타일링 [C++] 문제 출처: www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net 1. 코드 #include using namespace std; int n; int arr[1001]; int solution(int deep) { if (deep == 0) return arr[0] = 1; if (deep == 1) return arr[1] = 1; if (arr[deep]) return arr[deep]; else return arr[deep] = (solution(deep - 1) + soluti..