728x90
728x90

구현 43

백준] 3035 - 스캐너(COCI 2006/2007)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 R, C, ZR, ZC가 주어진다. R과 C는 1과 50 사이의 정수이고, ZR과 ZC는 1과 5 사이의 정수이다. 다음 R개 줄에는 신문 기사가 주어진다. 출력스캐너에 스캔된 결과를 총 R*ZR개 줄에 걸쳐서 C*ZC개 문자씩 출력한다. 소스코드 #include using namespace std; int main(void) { int r, c, zr, zc; char arr[51][51]; cin >> r >> c >> zr >> zc; for (int i = 0; i > arr[i]; for (int i = 0; i < r; i++) { for (int l = 0; l < zr; l++) { for (int j =..

백준] 5046 - 전국 대학생 프로그래밍 대회 동아리 연합(ACM-ICPC Regional)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 참가자의 수 1 ≤ N ≤ 200, 예산 1 ≤ B ≤ 500000, 호텔의 수 1 ≤ H ≤ 18, 고를 수 있는 주의 개수 1 ≤ W ≤ 13이 주어진다. 다음 줄부터 각 호텔의 정보가 주어지며, 호텔의 정보는 두 줄로 이루어져 있다. 첫번째 줄에는 그 호텔의 일인당 숙박비용 1 ≤ p ≤ 10000이 주어지고, 둘째 줄에는 i번째 주에 투숙 가능한 인원 0 ≤ a ≤ 1000이 주어진다. 출력첫째 줄에 대회를 개최할 수 있으면 최소 비용을 출력하고, 없으면 "stay home"을 출력한다. 소스코드 #include using namespace std; int main(void) { int n, b, h, w, min, p, sum = 0; ..

백준] 1788 - 피보나치 수의 확장

시간 제한 : 2초메모리 제한 : 128MB 입력첫째 줄에 n이 주어진다. n은 절대값이 1,000,000을 넘지 않는 정수이다. 출력첫째 줄에 F(n)이 양수이면 1, 0이면 0, 음수이면 -1을 출력한다. 둘째 줄에는 F(n)의 절대값을 출력한다. 이 수가 충분히 커질 수 있으므로, 절대값을 1,000,000,000으로 나눈 나머지를 출력한다. 소스코드 #include using namespace std; long long dp[1000001] = { 0, 1, }; int main(void) { int n, k; cin >> n; if (n < 0) k = -n; else k = n; for (int i = 2; i 0) cout

백준] 2798 - 블랙잭(COCI 2011/2012)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 써있는 수가 주어지며, 이 값은 100,000을 넘지 않는다. 출력첫째 줄에 M을 넘지 않으면서 M에 최대한 가까운 카드 3장의 합을 출력한다. 소스코드 #include using namespace std; int main(void) { int n, m, arr[100], ans = 0; cin >> n >> m; for (int i = 0; i > arr[i]; for (int i = 0; i < n - 2; i++) for (int j = i + 1; j < n - 1; j++) for (int k = j +..

백준] 2851 - 슈퍼 마리오(COCI 2010/2011)

시간 제한 : 1초메모리 제한 : 128MB 입력총 10개의 줄에 각각의 버섯의 점수가 주어진다. 이 값은 100보다 작거나 같은 양의 정수이다. 버섯이 나온 순서대로 점수가 주어진다. 출력첫째 줄에 마리오가 받는 점수를 출력한다. 만약 100에 가까운 수가 2개라면 (예: 98, 102) 마리오는 큰 값을 선택한다. 소스코드 #include using namespace std; int main(void) { int arr[10], sum = 0, ans1, ans2, ans; for (int i = 0; i > arr[i]; for (int i = 0; i < 10; i++) { sum+=arr[i]; if (sum == 100) { ans = sum; break; } el..

백준] 5086 - 배수와 약수(ACM-ICPC Regional)

시간 제한 : 1초메모리 제한 : 128MB 입력입력은 여러 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 두 자연수로 이루어져 있다. 마지막 줄에는 0이 2개 주어진다. 두 수가 같은 경우는 없다. 출력각 테스트 케이스마다 첫번째 숫자가 두번째 숫자의 약수라면 factor를, 배수라면 multiple을, 둘 다 아니라면 neither를 출력한다. 소스코드 #include using namespace std; int main(void) { int n, m; while (1) { cin >> n >> m; if (n == 0 && m == 0) break; if (m%n == 0) cout

백준] 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) {..

백준] 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

728x90