728x90
728x90

알고리즘 246

백준] 2997 - 네 번째 수(COCI 2007/2008)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 상근이가 고른 네 개의 숫자 중 세 개가 주어진다. 이 숫자는 크기 순이 아닐 수도 있고, -100보다 크거나 같고, 100보다 작거나 같은 정수이다. 출력첫째 줄에 네 번째 숫자를 출력한다. 정답이 여러 개일 경우에는 아무거나 출력하면 된다. 또한 정답이 존재하지 않는 경우는 입력으로 주어지지 않는다. 소스코드#include #include #include using namespace std; int main(void) { vector arr(3); for (int i = 0; i > arr[i]; sort(arr.begin(), arr.end()); int d1, d2; d1 = arr[1] - arr[0]; d2 ..

백준] 2891 - 카약과 강풍(COCI 2009/2010)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 팀의 수 N, 카약이 손상된 팀의 수 S, 카약을 하나 더 가져온 팀의 수 R이 주어진다. (2 ≤ N ≤ 10, 2 ≤ S, R ≤ N)둘째 줄에는 카약이 손상된 팀의 번호가 주어진다. 팀 번호는 중복되지 않는다.셋째 줄에는 카약을 하나 더 가져온 팀의 번호가 주어진다. 팀 번호는 중복되지 않는다. 출력첫째 줄에 출발을 할 수 없는 팀의 최솟값을 출력한다. 소스코드#include #include using namespace std; int main(void) { int N, S, R, retire = 0; cin >> N >> S >> R; vector team(N + 1, 1); vector broken(S); vector spare(R); ..

백준] 3486 - Adding Reversed Numbers(ACM-ICPC Regionals)

시간 제한 : 1초메모리 제한 : 128MB 입력The input consists of N cases. The first line of the input contains only positive integer N. Then follow the cases. Each case consists of exactly one line with two positive integers separated by space. These are the reversed numbers you are to add. Two integers are less than 100,000,000. 출력For each case, print exactly one line containing only one integer - the reversed..

백준] 10826 - 피보나치 수 4

시간 제한 : 1초메모리 제한 : 256MB 입력첫째 줄에 n이 주어진다. n은 10,000보다 작거나 같은 자연수 또는 0이다. 출력첫째 줄에 n번째 피보나치 수를 출력한다. 소스코드#include #include #include using namespace std; int main(void) { int n, len1, len2, carry, prevCarry; string fib1 = "0", fib2 = "1"; cin >> n; if (n == 0) cout = 10) { carry = 1; nextFib += (f1 + f2 + prevCarry - 10) + '0'; if (i == 0 && carry) nextFib += '1'; } else { carry = 0; nextFib += (f1..

백준] 3054 - 피터팬 프레임(COCI 2006/2007)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 알파벳 대문자로 이루어진 최대 15글자 단어가 주어진다. 출력다섯 줄에 걸쳐, 입력으로 주어진 단어를 피터팬 프레임과 웬디 프레임으로 장식한 결과를 출력한다. 소스코드#include #include #include using namespace std; int main(void) { string str; int len; cin >> str; len = str.length(); vector arr(5); arr[0] = "..#.."; for (int i = 1; i < str.length(); i++) { if (i % 3 == 2) arr[0] += ".*.."; else arr[0] += ".#.."; } arr[4] = arr[0]; arr[..

백준] 1049 - 기타줄

시간 제한 : 2초메모리 제한 : 128MB 입력첫째 줄에 N과 M이 주어진다. N은 100보다 작거나 같은 자연수이고, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 각 브랜드의 패키지 가격과 낱개의 가격이 공백으로 구분하여 주어진다. 가격은 0보다 크거나 같고, 1,000보다 작거나 같은 정수이다. 출력첫째 줄에 김지민이 기타줄을 적어도 N개 사기 위해 필요한 돈의 최솟값을 출력한다. 소스코드#include #include using namespace std; int main(void) { int n, m, sum = 0; int package[50], piece[50]; bool cheap = false; cin >> n >> m; for (int i = 0; i < m; i++..

백준] 9020 - 골드바흐의 추측(ACM-ICPC Regionals)

시간 제한 : 2초메모리 제한 : 256MB 입력첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고 짝수 n이 주어진다. (4 ≤ n ≤ 10,000) 출력각 테스트 케이스에 대해서 주어진 n의 골드바흐 파티션을 출력한다. 출력하는 소수는 작은 것부터 먼저 출력하며, 공백으로 구분한다. 소스코드#include #include #include using namespace std; int main(void) { int T, N; vector arr(10001, true); vector sosu; cin >> T; for (int i = 2; i =0) { if (max > (N - sosu[i]*2)) { max = N - sosu[i] * 2; ans1 = sosu[..

백준] 5692 - 팩토리얼 진법(ACM-ICPC Regionals)

시간 제한 : 1초메모리 제한 : 128MB 입력입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 최대 5자리인 팩토리얼 진법 숫자가 주어진다. 입력의 마지막 줄에는 0이 하나 주어진다. 출력각 테스트 케이스에 대해서, 입력으로 주어진 팩토리얼 진법 숫자를 10진법으로 읽은 값을 출력한다. 소스코드#include #include using namespace std; int main(void) { std::ios::sync_with_stdio(false); cin.tie(0); int arr[6] = { 0, 1, 2, 6, 24, 120 }; while (1) { string s; int len, sum = 0; cin >> s; if (s == "0"..

백준] 2942 - 퍼거슨과 사과(COCI 2008/2009)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 R과 G가 주어진다. (1 ≤ R, G ≤ 1,000,000,000) 출력퍼거슨이 사과를 나누어 주는 방법을 출력한다. 방법을 출력할 때는 사과를 받게되는 선수의 수 N과 나누어 주는 빨간 사과의 수 X와 초록 사과의 수 Y를 출력한다.각 방법은 한 번만 출력해야 한다. 나누어 주는 방법은 아무 순서로 출력해도 된다. 소스코드#include #include #include using namespace std; int gcd(int a, int b) { if (b == 0) return a; else return gcd(b, a%b); } int main(void) { int r, g, c; set meta; cin >> r >> g; if (r ..

728x90