본문 바로가기

백준88

[백준 14499] 주사위 굴리기, C++ https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지도에 쓰여 있는 수가 북쪽부터 남쪽으로, 각 줄은 서쪽부터 동쪽 순서대로 주어진다. 주사위를 놓은 칸에 쓰여 있는 수는 항상 0이다. 지도의 각 칸에 쓰여 있는 수는 10을 넘지 않는 자연수 또는 0이다. 마 www.acmicpc.net 본 문제는 주어진 지도위에서 주사위를 굴릴 때 다음과 같은 조건을 만족해야 한다. 도착한 칸이 0일 경우 주사위 바닥의 수를 도.. 2020. 5. 11.
[백준 3190] 뱀, C++ https://www.acmicpc.net/problem/3190 3190번: 뱀 문제 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. www.acmicpc.net 본 문제는 'Dummy'라는 도스 게임이 있다. 이 게임에는 뱀이 나와서 기어 다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어 다니다가 벽 또는 자기 자신의 몸과 부딪히면 게임이 끝난다. 좀 더 자세한 설명은 링크를 참고하길 바란다. 뱀을 머리와 꼬리를 진짜로 움직이기는 까다롭다. 그래서 뱀을 이동한 시간과 뱀의 길이를 이용하여 문제를 해결할 수 있다. 방문한 칸에 사과가 있으면 뱀의 .. 2020. 5. 11.
[백준 14888] 연산자 끼워넣기, C++ https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, 곱셈(×)의 개수, 나눗셈(÷)의 개수이다. www.acmicpc.net 본 문제는 주어진 더하기, 빼기, 곱하기, 나누기를 모두 사용하여 최댓값과 최솟값을 구하는 문제다. 이때 사칙연산은 무시한다. next_permutation을 이용하여 모든 경우를 계산하였다. 이때 최댓값과 최솟값이 int의 범위를 벗어날 수 있다. 1 2 3 4 5 6 7 8 9 10 11 12 .. 2020. 5. 3.
[백준 12872] 플레이리스트, C++ https://www.acmicpc.net/problem/12872 12872번: 플레이리스트 첫째 줄에 수빈이가 만들 수 있는 플레이리스트의 경우의 수를 출력한다. 경우의 수가 매우 커질 수 있기 때문에, 1,000,000,007로 나눈 나머지를 출력한다. www.acmicpc.net 본 문제는 수빈이가 플레이리스트를 만들수 있는 경우의 수를 출력하는 문제다. 모든 노래를 플레이리스트에 추가해야 하며 노래를 중복해서 추가할 수 있다. 하지만 중복된 노래를 추가 하려면, 두 곡 사이에 m개 이상의 곡이 있어야 한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 3.. 2020. 4. 27.
[백준 2916] 자와 각도기, C++ https://www.acmicpc.net/problem/2916 2916번: 자와 각도기 문제 창영이는 방 청소를 하다가 자와 각도기를 발견했다. 다음날 창영이는 학교에 자와 각도기를 들고 갔고, 현우와 "작도 대결"을 하려고 한다. 창영이는 각도기와 자를 이용해서 만들 수 있는 각을 알고 있고, 두 각을 합하거나 빼서 새로운 각을 만드는 방법을 알고 있다. 현우가 어떤 각도를 외치면, 창영이는 자와 각도기를 이용해서 현우가 외친 각도를 작도해야 한다. 작도할 때는 새로운 각을 이용해서 또다른 새로운 각을 만드는 것도 가능하다. 현우가 외치는 www.acmicpc.net 본 문제는 주어진 n개의 각을 이용해 합하거나 빼서 새로운 각을 만든다. 또한 새로운 각을 이용해서 또 다른 새로운 각을 만드는 것도.. 2020. 4. 27.
[백준 17069] 파이프 옮기기 2, C++ https://www.acmicpc.net/problem/17069 17069번: 파이프 옮기기 2 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 번호이고, 행과 열의 번호는 1부터 시작한다. 각각의 칸은 빈 칸이거나 벽이다. 오늘은 집 수리를 위해서 파이프 하나를 옮기려고 한다. 파이프는 아래와 같은 형태이고, 2개의 연속된 칸을 차지하는 크기이다. 파이프는 회전시킬 수 있으며, 아래와 같이 www.acmicpc.net 본 문제는 파이프 옮기기 1 문제에서 입력의 크기가 커진 문제다. dfs 탐색을 할 때, 같은 연산을 여려번 하는 경우가 발.. 2020. 4. 22.