728x90

백준 알고리즘 190

백준] 2578 - 빙고(한국정보올림피아드 2006;KOI 2006 지역본선)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄부터 다섯째 줄까지 빙고판에 쓰여진 수가 가장 위 가로줄부터 차례대로 한 줄에 다섯 개씩 빈 칸을 사이에 두고 주어진다. 여섯째 줄부터 열째 줄까지 사회자가 부르는 수가 차례대로 한 줄에 다섯 개씩 빈 칸을 사이에 두고 주어진다. 빙고판에 쓰여진 수와 사회자가 부르는 수는 각각 1부터 25까지의 수가 한 번씩 사용된다. 출력첫째 줄에 사회자가 몇 번째 수를 부른 후 철수가 "빙고"를 외치게 되는지 출력한다. 소스코드 #include using namespace std; int board[5][5]; bool isCheck[5][5]; int calls[25]; void check(int n) { for (int i = 0; i < 5; i++) fo..

백준] 15969 - 행복(한국정보올림피아드 2018;KOI 2018 전국)

시간 제한 : 2초메모리 제한 : 512MB 입력표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 학생 수 N이 주어진다. 다음 줄에는 N명의 학생 점수가 공백 하나를 사이에 두고 주어진다. 출력표준 출력으로 가장 높은 점수와 가장 낮은 점수의 차이를 출력한다. 소스코드 #include using namespace std; int main(void) { int max = -1, min = 1001, tmp, n; cin >> n; for (int i = 0; i > tmp; if (max tmp) min = tmp; } cout

백준] 2863 - 이게 분수?(COCI 2010/2011)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 A와 B가 공백으로 구분되어 주어진다. 둘째 줄에 C와 D가 공백으로 구분되어 주어진다. 모든 수는 100보다 작거나 같은 양의 정수이다. 출력첫째 줄에 표를 몇 번 돌려야 표의 값이 최대가 되는지 출력한다. 만약, 그러한 값이 여러개라면 가장 작은 값을 출력한다. 소스코드 #include using namespace std; int main(void) { int cnt, ans; double a, b, c, d, max = 0, tmp; cin >> a >> b >> c >> d; for (cnt = 0; cnt < 4; cnt++) { switch (cnt) { case 0: tmp = a / c + b / d; break; case 1: t..

백준] 14720 - 우유 축제(충남대학교 생각하는 프로그래밍 대회)

시간 제한 : 1초메모리 제한 : 256MB 입력첫째 줄에 우유 가게의 수 N이 주어진다. (1 ≤ N ≤ 1000)둘째 줄에는 우유 가게 정보가 우유 거리의 시작부터 끝까지 순서대로 N개의 정수로 주어진다.0은 딸기우유만을 파는 가게, 1은 초코우유만을 파는 가게, 2는 바나나우유만을 파는 가게를 뜻하며, 0, 1, 2 외의 정수는 주어지지 않는다. 출력영학이가 마실 수 있는 우유의 최대 개수를 출력하시오. 소스코드 #include #include using namespace std; int main(void) { int n, cnt, state, start = -1; bool check = false; cin >> n; vector arr(n); for (int i = 0; i < n; i++) { ..

백준] 5566 - 주사위 게임(JOI 2010 예선)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 N과 M이 주어진다. M은 상근이가 주사위를 던짓 횟수이다. (2 ≤ N ≤ 1000, 1 ≤ M ≤ 1000)다음 N개 줄에는 -999이상 999이하의 정수가 하나씩 적혀있다. i번째 정수는 i번 칸에 써있는 지시사항 X이다. 이 때, X가 0이면 아무것도 하지 않고 그 자리에 멈춰 있는다. X가 양수인 경우에는 X칸 더 앞으로 진행하는 것을, 음수인 경우에는 |X|칸 뒤로 진행하는 것을 나타낸다.다음 M개 줄에는 1이상 6이하의 정수가 주어진다. j번째 정수는 상근이가 주사위를 j번째로 던졌을 때, 나온 눈이다.1번 칸과 N번 칸에 써있는 지시사항은 항상 0이다. 또, 항상 주사위를 M번 이하로 던져서 도착할 수 있다. 또, 1보다 작은 칸으..

백준] 11728 - 배열 합치기

시간 제한 : 1.5초메모리 제한 : 256MB 입력첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000)둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절대값이 109보다 작거나 같은 정수이다. 출력첫째 줄에 두 배열을 합친 후 정렬한 결과를 출력한다. 소스코드 #include #include using namespace std; int main(void) { ios_base::sync_with_stdio(false); int m, n, idx1, idx2; cin >> n >> m; vector arr1(n), arr2(m), ans(n+m); for (int i = 0; i >..

백준] 2858 - 기숙사 바닥(COCI 2010/2011)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 빨간색 블럭의 수 R과 갈색 블럭의 B가 주어진다. (8 ≤ R ≤ 5000, 1 ≤ B ≤ 2,000,000) 출력첫째 줄에 상근이네 방의 크기 L과 W을 공백으로 구분하여 출력한다. 만약, 두 수가 다르다면, 큰 수가 L이 되고 작은 수가 W이 된다. 항상 정답이 유일한 경우만 입력으로 주어진다. 소스코드 #include using namespace std; int main(void) { int r, b, sum; int sw, sl, w, l; cin >> r >> b; for (l = 1;; l++) { if (b%l == 0) w = b / l; sum = w * 2 + l * 2 + 4; if (sum == r) { if (w > l)..

백준] 2003 - 수들의 합2

시간 제한 : 0.5초메모리 제한 : 128MB 입력첫째 줄에 N(1≤N≤10,000), M(1≤M≤300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. 출력첫째 줄에 경우의 수를 출력한다. 소스코드 #include #include using namespace std; int main(void) { int n, m, s, e, sum = 0, cnt = 0; cin >> n >> m; vector arr(n); for (int i = 0; i > arr[i]; s = 0, e = 0; while (1) { if (sum >= m) sum -= arr[e++]; e..

백준] 2564 - 경비원(KOI 2007 지역본선 초등부)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 블록의 가로의 길이와 세로의 길이가 차례로 주어진다. 둘째 줄에 상점의 개수가 주어진다. 블록의 가로의 길이와 세로의 길이, 상점의 개수는 모두 100이하의 자연수이다. 이어 한 줄에 하나씩 상점의 위치가 주어진다. 상점의 위치는 두 개의 자연수로 표시된다. 첫째 수는 상점이 위치한 방향을 나타내는데, 1은 블록의 북쪽, 2는 블록의 남쪽, 3은 블록의 서쪽, 4는 블록의 동쪽에 상점이 있음을 의미한다. 둘째 수는 상점이 블록의 북쪽 또는 남쪽에 위치한 경우 블록의 왼쪽 경계로부터의 거리를 나타내고, 상점이 블록의 동쪽 또는 서쪽에 위치한 경우 블록의 위쪽 경계로부터의 거리를 나타낸다. 마지막 줄에는 동근이의 위치가 상점의 위치와 같은 방식으로 ..

728x90