728x90

알고리즘 246

백준] 5724 - 파인만(ACM-ICPC Regional)

시간 제한 : 1초메모리 제한 : 128MB 입력입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, 그리드 한 변에 있는 정사각형의 개수 N이 주어진다. (1 ≤ N ≤ 100) 입력의 마지막 줄에는 0이 하나 주어진다. 출력각 테스트 케이스에 대해서, 한 줄에 하나씩 서로 다른 정사각형의 개수를 출력한다. 소스코드 #include using namespace std; int main(void) { int n; while (1) { cin >> n; if (n == 0) break; cout

백준] 3040 - 백설 공주와 일곱 난쟁이(COCI 2006/2007)

시간 제한 : 1초메모리 제한 : 128MB 입력총 아홉개 줄에 1보다 크거나 같고 99보다 작거나 같은 자연수가 주어진다. 모든 숫자는 서로 다르다. 또, 항상 답이 유일한 경우만 입력으로 주어진다. 출력일곱 난쟁이가 쓴 모자에 써 있는 수를 한 줄에 하나씩 출력한다. 소스코드 #include using namespace std; int main(void) { int arr[9], sum = 0; for (int i = 0; i > arr[i]; sum += arr[i]; } for (int i = 0; i < 8; i++) { for (int j = i + 1; j < 9; j++) { if (sum - arr[i] - arr[j] == 100) { for (int k ..

백준] 1302 - 베스트셀러

시간 제한 : 2초메모리 제한 : 128MB 입력첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고, 알파벳 소문자로만 이루어져 있다. 출력첫째 줄에 가장 많이 팔린 책의 제목을 출력한다. 만약 가장 많이 팔린 책이 여러 개일 경우에는 사전 순으로 가장 앞서는 제목을 출력한다. 소스코드 #include #include #include #include using namespace std; struct book { string name; int sold; }; bool compare(const struct book a, const struct book b) {..

백준] 1735 - 분수 합

시간 제한 : 2초메모리 제한 : 128MB 입력첫째 줄과 둘째 줄에, 각 분수의 분자와 분모를 뜻하는 두 개의 자연수가 순서대로 주어진다. 입력되는 네 자연수는 모두 30,000 이하이다. 출력첫째 줄에 구하고자 하는 기약분수의 분자와 분모를 뜻하는 두 개의 자연수를 빈 칸을 사이에 두고 순서대로 출력한다. 소스코드 #include using namespace std; int gcd(int a, int b) { if (b == 0) return a; else gcd(b, a%b); } int main(void) { int a1, a2, b1, b2, lcm, sum, ki; cin >> a1 >> a2; cin >> b1 >> b2; if (a2 > b2) lcm = gcd(a2, b2); else l..

백준] 5545 - 최고의 피자(JOI 2012 예선)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 토핑의 종류의 수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 도우의 가격 A와 토핑의 가격 B가 주어진다. (1 ≤ A, B ≤ 1000) 셋째 줄에는 도우의 열량 C가 주어진다. (1 ≤ C ≤ 10000) 다음 줄부터 N개 줄에는 각 토핑의 열량 Di가 한 줄에 하나씩 주어진다. (1 ≤ Di ≤ 10000) 출력첫째 줄에 최고의 피자의 1달러 당 열량을 출력한다. 소수점 이하는 버리고 정수 값으로 출력한다. 소스코드 #include #include #include using namespace std; int main(void) { int n, a, b, c, d[100], sum, toping, bil; double max = 0;..

백준] 3003 - 킹, 퀸, 룩, 비숍, 나이트, 폰

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다. 이 값은 0보다 크거나 같고 10보다 작거나 같은 정수이다. 출력첫째 줄에 입력에서 주어진 순서대로 몇 개의 피스를 더하거나 빼야 되는지를 출력한다. 만약 수가 양수라면 동혁이는 그 개수 만큼 피스를 더해야 하는 것이고, 음수라면 제거해야 하는 것이다. 소스코드 #include using namespace std; int main(void) { int arr[6] = { 1,1,2,2,2,8 }, input[6]; for (int i = 0; i > input[i]; for (int i = 0; i < 6; i++) cout

백준] 4641 - Doubles(ACM-ICPC Regional)

시간 제한 : 1초메모리 제한 : 128MB 입력입력은 여러 개의 테스트 케이스로 주어져 있으며, 입력의 끝에는 -1이 하나 주어진다.각 테스트 케이스는 한 줄로 이루어져 있으며, 2~15개의 서로 다른 자연수가 주어진다. 각 자연수는 100보다 작으며, 리스트의 끝은 0으로 판별한다(0은 리스트에 속하지 않는다). 출력각 테스트 케이스마다 한 줄에 걸쳐 정답을 출력한다. 소스코드 #include #include using namespace std; int main(void) { vector arr; int tmp, cnt = 0, size; while (1) { cin >> tmp; if (tmp == -1) break; else if (tmp == 0) { size = arr.size(); for (..

728x90