728x90

백준 알고리즘 190

백준] 10546 - 배부른 마라토너(COCI 2014/2015)

시간 제한 : 1초메모리 제한 : 64MB 입력첫째 줄에는 참가자 수 N이 주어진다. (1 ≤ N ≤ 105)N개의 줄에는 참가자의 이름이 주어진다.추가적으로 주어지는 N-1개의 줄에는 완주한 참가자의 이름이 쓰여져 있다. 참가자들의 이름은 길이가 1보다 크거나 같고, 20보다 작거나 같은 문자열이고, 알파벳 소문자로만 이루어져 있다.참가자들 중엔 동명이인이 있을 수도 있다. 출력마라톤을 완주하지 못한 참가자의 이름을 출력한다. 소스코드 #include #include #include using namespace std; int main(void) { map list; int n; string tmp; cin >> n; for (int i = 0; i > tmp; if (l..

백준] 4949 - 균형잡힌 세상(ACM-ICPC Regionals)

시간 제한 : 1초메모리 제한 : 128MB 입력하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다.입력의 종료조건으로 맨 마지막에 점 하나(".")가 들어온다. 출력각 줄마다 해당 문자열이 균형을 이루고 있으면 "yes"를, 아니면 "no"를 출력한다. 소스코드 #include #include #include using namespace std; int main(void) { string tmp; while (1) { getline(cin, tmp); if (tmp == ".") break; int len = tmp.length(); bool check = true; stack ..

백준] 2512 - 예산(KOI 2012;한국정보올림피아드 2012)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에는 지방의 수를 의미하는 정수 N이 주어진다. N은 3 이상 10,000 이하이다. 다음 줄에는 각 지방의 예산요청을 표현하는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 값들은 모두 1 이상 100,000 이하이다. 그 다음 줄에는 총 예산을 나타내는 정수 M이 주어진다. M은 N 이상 1,000,000,000 이하이다. 출력첫째 줄에는 배정된 예산들 중 최대값인 정수를 출력한다. 소스코드 #include using namespace std; int main(void) { int arr[10001], max = 0, n, limit; cin >> n; for (int i = 0; i > arr[i]; if (ar..

백준] 14470 - 전자레인지(JOI 2017 예선)

시간 제한 : 2초메모리 제한 : 512MB 입력입력은 총 5줄로, 한 줄에 한 개씩의 정수가 주어진다.첫 줄에는 원래의 고기의 온도 A가 주어진다. 단, A는 -100 이상 100 이하이며, 0이 아니다.둘째 줄에는 목표 온도 B가 주어진다. 단, B는 1 이상 100 이하이며, A보다 크다.셋째 줄에는 얼어 있는 고기를 1℃ 데우는 데 걸리는 시간 C가 주어진다.넷째 줄에는 얼어 있는 고기를 해동하는 데 걸리는 시간 D가 주어진다.다섯째 줄에는 얼어 있지 않은 고기를 1℃ 데우는 데 걸리는 시간 E가 주어진다.C, D, E는 모두 1 이상 100 이하이다. 출력고기를 B℃로 데우는 데 걸리는 시간을 초 단위로 한 줄에 출력하라. 소스코드 Tip

백준] 1138 - 한 줄로 서기

시간 제한 : 2초메모리 제한 : 128MB 입력첫째 줄에 사람의 수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 둘째 줄에는 키가 1인 사람부터 차례대로 자기보다 키가 큰 사람이 왼쪽에 몇 명이 있었는지 주어진다. i번째 수는 0보다 크거나 같고, N-i-1보다 작거나 같다. 출력첫째 줄에 줄을 선 순서대로 키를 출력한다. 소스코드 #include using namespace std; int main(void) { int n; int arr[10], ans[11] = { 0, }; cin >> n; for (int i = 0; i > arr[i]; ans[arr[0] + 1] = 1; for (int i = 1; i < n; i++) { int cnt = 0; fo..

백준] 1812 - 사탕

시간 제한 : 2초메모리 제한 : 128MB 입력첫째 줄에 N(3≤N≤999, N은 홀수)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 1번 학생과 2번 학생이 가지고 있는 사탕의 수의 합, 2번 학생과 3번 학생이 가지고 있는 사탕의 수의 합, …, N-1번 학생과 N번 학생이 가지고 있는 사탕의 수의 합, 마지막으로 N번 학생과 1번 학생의 가지고 있는 사탕의 수의 합이 순서대로 주어진다. 출력첫째 줄부터 N개의 줄에 걸쳐 1번 학생이 가지고 있는 사탕의 수, 2번 학생이 가지고 있는 사탕의 수, …, N번 학생이 가지고 있는 사탕의 수를 순서대로 출력한다. 출력하는 수는 음이 아닌 정수들이어야 하며, 항상 답이 존재하는 경우만이 입력으로 주어진다고 가정해도 좋다. 소스코드 #include using ..

백준] 1439 - 뒤집기

시간 제한 : 2초메모리 제한 : 128MB 입력첫째 줄에 문자열 S가 주어진다. S는 백만보다 작은 길이 출력첫째 줄에 다솜이가 해야하는 행동의 최소값을 출력한다. 소스코드 #include #include using namespace std; int main(void) { string s; int len, zeropart = 0, onepart = 0, cnt = 0; cin >> s; len = s.length(); if (s[0] == '0') zeropart = 1; else onepart = 1; for (int i = 1; i < len; i++) { if (s[i] != s[i - 1]) { if (s[i] == '0') zeropart++; else onepart++; } } cout

백준] 1531 - 투명

시간 제한 : 2초메모리 제한 : 128MB 입력첫째 줄에 N과 M이 주어진다. N은 0보다 크거나 같고, 50보다 작거나 같다. M은 0보다 크거나 같고, 50보다 작거나 같다. 둘째 줄부터 N개의 줄에 종이의 좌표가 주어진다. 왼쪽 아래 모서리의 x, y좌표, 오른쪽 위 모서리의 x, y좌표 순으로 주어진다. 모든 좌표는 100보다 작거나 같은 자연수이다. 출력첫째 줄에 정답을 출력한다. 소스코드 #include using namespace std; int main(void) { int arr[101][101] = { 0, }; int n, m, x1, y1, x2, y2, sum = 0; cin >> n >> m; for (int i = 0; i > x1 >> y1 >..

728x90