본문 바로가기

백준

(48)
[백준/c++] BOJ 13913 - 숨바꼭질 4 https://www.acmicpc.net/problem/13913 13913번: 숨바꼭질 4 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 문제 설명 수빈이는 현재 점 N에 있고, 동생은 점 M에 있다. 수빈이의 위치가 X일 때, X + 1, X - 1, X * 2의 위치로 이동할 수 있다. 이동할 때에는 1초가 걸리며, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구한다. 또한, 어떻게 이동해야 하는지 경로를 출력한다. N, M (1 > n >> m; if (n == m) { cout
[백준/c++] BOJ 14226 - 이모티콘 https://www.acmicpc.net/problem/14226 14226번: 이모티콘 영선이는 매우 기쁘기 때문에, 효빈이에게 스마일 이모티콘을 S개 보내려고 한다. 영선이는 이미 화면에 이모티콘 1개를 입력했다. 이제, 다음과 같은 3가지 연산만 사용해서 이모티콘을 S개 만 www.acmicpc.net 문제 설명 1개의 스마일 이모티콘을 가지고 3가지 연산만 사용하여 S개를 만드려고 한다. 1. 화면의 이모티콘을 복사하여 클립보드에 저장 (클립보드 > n; cout
[백준/c++] BOJ 14923 - 미로 탈출 https://www.acmicpc.net/problem/14923 14923번: 미로 탈출 홍익이는 사악한 마법사의 꾐에 속아 N x M 미로 (Hx, Hy) 위치에 떨어졌다. 다행히도 홍익이는 마법사가 만든 미로의 탈출 위치(Ex, Ey)를 알고 있다. 하지만 미로에는 곳곳에 마법사가 설치한 벽이 www.acmicpc.net 문제 설명 NxM 미로의 { Hx, Hy } 위치에서 시작하여, { Ex, Ey } 위치로 이동하려고 한다. 0은 길, 1은 벽을 나타낸다. 미로를 탈출하면서 단 한번, 벽을 뚫을 수 있을 때 미로를 탈출할 수 있는지 알아보고 가장 빠른 경로의 거리 D를 구한다. 인접한 칸으로 이동하는 데는 똑같이 시간 1이 들고, 벽을 부수는 데는 시간이 걸리지 않는다. N, M (2 n >>..
[백준/c++] BOJ 16173 - 점프왕 쩰리 (Small) https://www.acmicpc.net/problem/16173 16173번: 점프왕 쩰리 (Small) 쩰리는 맨 왼쪽 위의 칸에서 출발해 (행, 열)로 나타낸 좌표계로, (1, 1) -> (2, 1) -> (3, 1) -> (3, 3)으로 이동해 게임에서 승리할 수 있다. www.acmicpc.net 문제 설명 NxN 보드 내부에서 움직이는 점프 게임을 하려고 한다. 출발점은 가장 왼쪽, 가장 위의 칸이며, 가장 오른쪽, 가장 아래 칸에 도달하면 승리한다. 이동 가능한 방향은 오른쪽과 아래 뿐이고, 이동할 때는 현재 밟고 있는 칸에 쓰여진 숫자만큼 이동하여야 한다. 이동 중 방향 조절 불가능하며, 끝 점에 도달할 수 있다면 "HaruHaru"를, 도달할 수 없다면 "Hing"을 출력한다. N (2..
[백준/c++] BOJ 1449 - 수리공 항승 https://www.acmicpc.net/problem/1449 1449번: 수리공 항승 첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다. 둘째 줄에는 물이 새는 곳의 위치가 주어진다. N과 L은 1,000보다 작거나 같은 자연수이고, 물이 새는 곳의 위치는 1,000보다 작거나 www.acmicpc.net 문제 설명 물이 새는 파이프를 수리하려고 한다. 파이프의 가장 왼쪽에서 정수만큼 떨어진 거리에서만 물이 샌다. 길이가 L인 테이프를 무한개 가지고 있고, 물을 막을 때 그 위치의 좌우 0.5만큼 간격을 줘서 막으려고 한다. 테이프를 자를 수 없고, 겹쳐서 붙이는 것은 가능할 때, 수리에 필요한 테이프의 최소 개수를 구한다. 물이 새는 곳 N (1 m; for (int i = 0; ..
[백준/c++] BOJ 16197 - 두 동전 https://www.acmicpc.net/problem/16197 16197번: 두 동전 N×M 크기의 보드와 4개의 버튼으로 이루어진 게임이 있다. 보드는 1×1크기의 정사각형 칸으로 나누어져 있고, 각각의 칸은 비어있거나, 벽이다. 두 개의 빈 칸에는 동전이 하나씩 놓여져 있고, www.acmicpc.net 문제 설명 NxM 크기의 보드와 4개의 버튼, 두 개의 동전이 있다. 두 동전은 다른 위치에 존재하며, 버튼을 이용해 위, 아래, 오른쪽, 왼쪽으로 두 동전이 동시에 한칸 움직인다. 이동하려는 곳에 벽이 있으면 이동하지 않으며, 이동하려는 방향에 칸이 없으면 동전을 보드 바깥으로 떨어진다. 하나의 동전만 떨어뜨리기 위해 버튼을 최소 몇 번 눌러야 하는지 구한다. 단, 두 동전을 떨어뜨릴 없거나,..
[백준/c++] BJO 26215 - 눈 치우기 https://www.acmicpc.net/problem/26215 26215번: 눈 치우기 집 2와 집 3 앞의 눈을 치우고, 집 2와 집 3 앞의 눈을 치우고, 집 1과 집 3 앞의 눈을 치운 뒤 집 3 앞의 눈을 두 번 치우면 5분만에 모든 집 앞의 눈을 치울 수 있다. www.acmicpc.net 문제 설명 집의 수 N이 주어진다. 각각의 집 앞에는 눈이 쌓여 있다. 집 앞에 눈을 치우려고 하는데, 눈을 치울 때는 한번에 두 집을 선택하여 각각 1만큼 치우거나 한 집을 선택해서 그 집만 1만큼 치울 수 있다. 눈을 전부 치울 때까지 걸리는 최소 시간은? 단, 24시간 (1440분)이 넘게 걸릴 경우, -1을 출력한다. N (1 a; v.push_back(a); } if (n == 1) { if (..
[백준/c++] BOJ 11508 - 2+1세일 https://www.acmicpc.net/problem/11508 11508번: 2+1 세일 KSG 편의점에서는 과일우유, 드링킹요구르트 등의 유제품을 '2+1 세일'하는 행사를 하고 있습니다. KSG 편의점에서 유제품 3개를 한 번에 산다면 그중에서 가장 싼 것은 무료로 지불하고 나머지 두 www.acmicpc.net 문제 설명 편의점에서 2+1 세일을 진행한다. 한번의 3개의 유제품을 살 경우에만, 그 중에서 가장 값이 싼 것을 무료로 지불한다. 총 N팩의 유제품을 구입하려고 할 때, 유제품을 모두 살 때 필요한 최소비용을 출력한다. 유제품의 수 N과 각 유제품의 가격 Ci가 주어진다. N (1 a; v.push_back(a); } sort(v.rbegin(), v.rend()); int ans =..