본문 바로가기

백준

(48)
[백준/c++] BOJ 18404 - 현명한 나이트 https://www.acmicpc.net/problem/18404 18404번: 현명한 나이트 첫째 줄에 N과 M이 공백을 기준으로 구분되어 자연수로 주어진다. (1 ≤ N ≤ 500, 1 ≤ M ≤ 1,000) 둘째 줄에 나이트의 위치 (X, Y)를 의미하는 X와 Y가 공백을 기준으로 구분되어 자연수로 주어진다. ( www.acmicpc.net 문제 설명 NxN 크기 체스판의 특정한 위치에 하나의 나이트가 존재한다. 이때 M개의 상대편 말들의 위치 값이 주어질 때, 상대편 말을 잡기 위한 나이트의 최소 이동 수를 계산한다. 나이트는 다음과 같은 위치로 이동 가능하다. N, M (1 knight.x >> knight.y; knight.x--, knight.y--; for (int i = 0; i < m..
[백준/c++] BOJ 1246 - 온라인 판매 https://www.acmicpc.net/problem/1246 1246번: 온라인 판매 첫째 줄에 정수 N(1 ≤ N ≤ 1,000)과 M(1 ≤ M ≤ 1,000)이 입력된다. 둘째 줄부터 M+1번째 줄까지 i+1번째 줄에는 Pi(1 ≤ Pi ≤ 1,000,000)가 입력된다. www.acmicpc.net 문제 설명 총 N개의 달걀이 있고, 잠재적인 고객은 총 M명이다. 그리고 각각의 i번째 고객은 각자 달걀 하나를 Pi 가격 이하로 살 수 있다고 밝혔다. 한 고객에게 두 개 이상의 달걀을 팔지 않기로 한다. 최대 수익을 올릴 수 있는 달걀의 가장 낮은 가격을 책정한다. N, M (1 m; for (int i = 0; i > a; v.push_back(a)..
[백준/c++] BOJ 21278 - 호석이 두 마리 치킨 문제 설명 https://www.acmicpc.net/problem/21278 21278번: 호석이 두 마리 치킨 위의 그림과 같이 1번과 2번 건물에 치킨집을 짓게 되면 1번부터 5번 건물에 대해 치킨집까지의 왕복 시간이 0, 0, 2, 2, 2 로 최소가 된다. 2번과 3번 건물에 지어도 동일한 왕복 시간이 나오지만 더 www.acmicpc.net 문제 설명 도시는 N개의 건물과 M개의 도로로 이루어져 있다. 건물은 1번부터 N번의 번호를 가지고 있다. i번째 도로는 서로 다른 두 건물 Ai와 Bi 사이를 1시간에 양방향으로 이동할 수 있는 도로이다. N개의 건물 중, 2개의 건물을 골라 치킨집을 지으려고 한다. 단, "모든 건물에서 가장 가까운 치킨집까지 왕복하는 최단 시간의 총합"을 최소화할 수 ..
[백준/c++] BOJ 16208 - 귀찮음 https://www.acmicpc.net/problem/16208 16208번: 귀찮음 현우는 무슨 이유에선지 길이 a1, ..., an의, 총 n개의 쇠막대가 필요해졌다. 하지만 그가 가진 것은 길이 a1+...+an의 하나의 쇠막대뿐이었다. 현우는 이 막대를 직접 잘라서 원래 필요하던 n개의 쇠 www.acmicpc.net 문제 설명 길이 a1, a2, ..., an의 총 n개의 쇠막대가 필요하다. 현재는 a1 + a2 + ... + an 길이의 하나의 쇠막대만 가지고 있다. 이 막대를 직접 잘라 원래 필요하던 n개의 쇠막대를 만들 것이다. 길이 x + y인 막대를 길이 x, y인 두 개의 막대로 자를 떄는 만들려고 하는 두 막대의 길이의 곱인 x*y의 비용이 든다. 최소한의 비용으로 쇠막대를 잘라..
[백준/c++] BOJ 14248 - 점프 점프 https://www.acmicpc.net/problem/14248 14248번: 점프 점프 첫 번째 줄에는 돌다리의 돌 개수 n이 주어진다.(1≤n≤100,000) 돌의 번호는 왼쪽부터 1번에서 n번이다. 다음 줄에는 그 위치에서 점프할 수 있는 거리 Ai가 주어진다.(1≤Ai≤100,000) 다음 줄에는 출 www.acmicpc.net 문제 설명 영우는 n개의 돌이 놓여 있는 돌다리 위에 있다. 돌다리의 돌에는 숫자 Ai가 하나씩 적혀 있는데, 이 적혀 있는 숫자만큼 왼쪽이나 오른쪽으로 점프할 수 있다. 이때, 돌다리 밖으로 나갈 수는다. 출발점 s에서 출발할 때, 방문 가능한 돌들의 개수를 구한다. n (1 > m; bfs(); cout
[백준/c++] BOJ 25214 - 크림 파스타 https://www.acmicpc.net/problem/25214 25214번: 크림 파스타 각 \(A_i\)가 추가된 직후의 문제의 답 \(N\)개를 공백으로 구분하여 출력한다. www.acmicpc.net 문제 설명 빈 배열 A 뒤에 정수를 N번 추가하려고 한다. 수를 추가할 때마다 1
[백준/c++] BOJ 5558 - チーズ (Cheese) https://www.acmicpc.net/problem/5558 5558번: チーズ (Cheese) 入力は H+1 行ある.1 行目には 3 つの整数 H,W,N (1 ≦ H ≦ 1000,1 ≦ W ≦ 1000,1 ≦ N ≦ 9) がこの順に空白で区切られて書かれている.2 行目から H+1 行目までの各行には,'S','1', '2', ..., '9', www.acmicpc.net 문제 설명 1부터 N까지의 경도를 가진 치즈를 생산하는 치즈공장이 각각 하나 있다. 쥐가 치즈공장을 돌면서 치즈를 먹으려고 한다. 쥐의 첫 번째 체력은 1이고 치즈 한 개를 먹을 때마다 체력이 1배 증가하지만 쥐는 자신의 체력보다 단단한 치즈를 먹을 수는 없다. 쥐가 인접한 칸으로 이동하는 데에는 1분이 걸리지만, 먹는 시간은 무시한다. ..
[백준/c++] BOJ 14496 - 그대, 그머가 되어 https://www.acmicpc.net/problem/14496 14496번: 그대, 그머가 되어 첫째 줄에 머호가 바꾸려 하는 문자 a와 b가 주어진다. 둘째 줄에 전체 문자의 수 N과 치환 가능한 문자쌍의 수 M이 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ M ≤ 10,000) 이후 M개의 줄에 걸쳐 치환 가능한 문 www.acmicpc.net 문제 설명 머호는 문자 a를 문자 b로 바꾸려고 한다. N개의 문자와 치환 가능한 M개의 문자쌍이 있을 때, a를 b로 바꾸기 위한 치환의 최소 횟수를 구한다. 치환이 불가능한 경우는 -1를 출력한다. N (1 b; cin >> n >> m; for (int i = 0; i > c >> d; v[c].push_back(d)..