백트래킹 22

[BOJ/Silver 1] 백준 18290 NM과 K (1)(C++)

문제 링크 https://www.acmicpc.net/problem/18290 18290번: NM과 K (1) 크기가 N×M인 격자판의 각 칸에 정수가 하나씩 들어있다. 이 격자판에서 칸 K개를 선택할 것이고, 선택한 칸에 들어있는 수를 모두 더한 값의 최댓값을 구하려고 한다. 단, 선택한 두 칸이 인접 www.acmicpc.net 문제 크기가 N×M인 격자판의 각 칸에 정수가 하나씩 들어있다. 이 격자판에서 칸 K개를 선택할 것이고, 선택한 칸에 들어있는 수를 모두 더한 값의 최댓값을 구하려고 한다. 단, 선택한 두 칸이 인접하면 안된다. r행 c열에 있는 칸을 (r, c)라고 했을 때, (r-1, c), (r+1, c), (r, c-1), (r, c+1)에 있는 칸이 인접한 칸이다. 입력 첫째 줄에 ..

BOJ/Silver 2024.03.08

[BOJ/Gold 4] 백준 17492 바둑알 점프(C++)

문제 링크 https://www.acmicpc.net/problem/17492 17492번: 바둑알 점프 입력의 첫 줄에 양의 정수 N이 주어진다. 이는 N × N 정사각 행렬의 한 변의 길이이다. 그 다음 줄부터 N개의 줄에 걸쳐 판의 상태가 주어진다. 각 줄은 N개의 정수가 공백으로 구분되어 주어지는 www.acmicpc.net 문제 바둑알 점프는 판 위에 있는 바둑알을 하나만 남기고 모두 없애는 게임이다. 바둑알은 가로, 세로, 대각선으로 인접한 바둑알 하나를 점프하여 움직일 수 있다. 움직였을 때, 뛰어넘은 바둑알은 없어진다. 이때 뛰어넘을 바둑알이 없으면 움직일 수 없다. 예를 들어, [그림1]에서 왼쪽 상단 바둑알을 오른쪽 하단 대각선 방향으로 움직이면 [그림2] 와 같이 된다. [그림3]에서..

BOJ/Gold 2024.02.02

[BOJ/Silver 1] 백준 30090 백신 개발(C++)

문제 링크 https://www.acmicpc.net/problem/30090 30090번: 백신 개발 평소 정보 보안에 관심이 많은 진흥이는 최근 들어 유행하고 있는 컴퓨터 바이러스에 대한 백신을 개발하려고 한다. 바이러스는 $N$개의 문자열로 이루어져 있다고 한다. 진흥이가 열심히 연구 www.acmicpc.net 문제 평소 정보 보안에 관심이 많은 진흥이는 최근 들어 유행하고 있는 컴퓨터 바이러스에 대한 백신을 개발하려고 한다. 바이러스는 N개의 문자열로 이루어져 있다고 한다. 진흥이가 열심히 연구한 결과, 이 바이러스를 처치할 방법은 다음과 같다. 바이러스를 구성하는 N개의 문자열을 적당한 순서를 정하여 하나로 이어 붙여야 한다. 앞에 붙는 문자열의 마지막 k글자와 뒤에 붙는 문자열의 첫 k글자가..

BOJ/Silver 2024.01.17

[BOJ/Silver 2] 백준 28447 마라탕 재료 고르기(Kotlin)

문제 링크 https://www.acmicpc.net/problem/28447 28447번: 마라탕 재료 고르기 재료 $1, 2, 4$를 고르면 $C_{1, 2} = 1, C_{1, 4} = 3, C_{2, 4} = 6$으로 최대인 $10$이 된다. www.acmicpc.net 문제 하얔이는 마라탕에 여러 재료를 넣어 먹는 것을 좋아한다. 하지만 마라탕에 항상 많은 재료를 넣는다고 맛있는 것은 아니다. 마라탕은 각 재료마다 궁합이 존재해서 같이 넣으면 맛있는 재료도 있고 그렇지 않은 경우도 있다. 여기서 하얔이는 고민에 빠졌다. 대체 어떻게 해야 K개의 재료를 넣었을 때 마라탕의 맛을 최대로 할 수 있는거지? C{i, j}를 재료 i와 재료 j를 같이 넣었을 때의 궁합이라 하자. 마라탕의 맛은 마라탕에 ..

BOJ/Silver 2023.08.16

[BOJ/Silver 2] 백준 28286 재채점을 기다리는 중(C++)

문제 링크 https://www.acmicpc.net/problem/28286 28286번: 재채점을 기다리는 중 UCPC고등학교에 다니는 민규는 최근에 기말고사를 치게 되었다. 기말고사는 $N$문제로 이루어져 있고, 각 문제는 보기가 1 이상 5 이하의 정수로 이루어진 객관식 문제이다. 시간이 지나 학교에서 www.acmicpc.net 문제 UCPC고등학교에 다니는 민규는 최근에 기말고사를 치게 되었다. 기말고사는 N문제로 이루어져 있고, 각 문제는 보기가 1 이상 5 이하의 정수로 이루어진 객관식 문제이다. 시간이 지나 학교에서 성적표를 받은 민규는 집에서 매겨본 점수보다 훨씬 낮은 점수를 받고 깜짝 놀랐다. 알고 보니 민규는 OMR 카드에 답안을 밀려 썼던 것이다. 억울하지만 어쩔 수 없이 결과를 ..

BOJ/Silver 2023.07.02

[BOJ/Gold 5] 백준 25330 SHOW ME THE DUNGEON(C++)

문제 링크 https://www.acmicpc.net/problem/25330 25330번: SHOW ME THE DUNGEON 올 여름 출시된 RPG 게임 "SHOW ME THE DUNGEON"은 주인공 시루가 몬스터에게 침략당한 마을을 구하는 내용의 게임이다. 배경이 되는 나라는 $0, 1, 2, \cdots, N$번의 번호가 붙어있는 $N+1$개의 마을로 이루 www.acmicpc.net 문제 올 여름 출시된 RPG 게임 "SHOW ME THE DUNGEON"은 주인공 시루가 몬스터에게 침략당한 마을을 구하는 내용의 게임이다. 배경이 되는 나라는 0, 1, 2, ⋯, N번의 번호가 붙어있는 N + 1개의 마을로 이루어져 있다. 0번 마을과 1, 2, ⋯, N번 마을을 오갈 수 있는 도로가 존재하고 ..

BOJ/Gold 2023.06.24

[BOJ/Gold 4] 백준 3671 산업 스파이의 편지(C++)

문제 링크 https://www.acmicpc.net/problem/3671 3671번: 산업 스파이의 편지 각 테스트 케이스에 대해 종이조각을 적절히 배치해서 만들 수 있는 서로 다른 소수의 개수를 출력한다. 이때, 모든 종이 조각을 사용하지 않아도 된다. (7과 1이 있을 때, 만들 수 있는 소수는 7, www.acmicpc.net 문제 안녕하세요. 저는 산업 스파이입니다. 저의 정체를 절대 다른 사람에게 말하지 말아주세요. 저의 가장 최근 일은 유명한 수학 연구소의 최신 연구 결과를 훔쳐오는 것이었습니다. 저는 매우 유능한 산업 스파이이기 때문에, 연구 결과를 어렵지 않게 얻을 수 있었습니다. 하지만, 제가 올 것을 미리 알았는지 연구소에서는 연구 결과를 모두 서류 절단기에 넣어버렸습니다. 어쩔수 ..

BOJ/Gold 2023.05.23

[BOJ/Gold 5] 백준 16987 계란으로 계란치기(C++)

문제 링크 https://www.acmicpc.net/problem/16987 16987번: 계란으로 계란치기 원래 프로그래머의 기본 소양은 팔굽혀펴기를 단 한 개도 할 수 없는 것이라고 하지만 인범이는 3대 500을 넘기는 몇 안되는 프로그래머 중 한 명이다. 인범이는 BOJ에서 틀린 제출을 할 때마다 턱 www.acmicpc.net 문제 원래 프로그래머의 기본 소양은 팔굽혀펴기를 단 한 개도 할 수 없는 것이라고 하지만 인범이는 3대 500을 넘기는 몇 안되는 프로그래머 중 한 명이다. 인범이는 BOJ에서 틀린 제출을 할 때마다 턱걸이를 5회 하는 기적의 운동 루틴을 통해 뇌와 근육을 동시에 단련한다. 근육을 단련할 때 식단이 정말로 중요하다는 것을 아는 인범이는 탄수화물이 많은 밥이나 빵 따위의 아..

BOJ/Gold 2023.05.10

[BOJ/Silver 1] 백준 27375 금공강 사수(C++)

문제 링크 https://www.acmicpc.net/problem/27375 문제 윤헌이는 수강신청 시즌이 되어 시간표를 짜고 있다. 지난 학기 금요일에 수업을 들어 친구들에게 온갖 놀림을 받은 윤헌이는 이번 학기에는 꼭 금요일 공강을 지켜내기로 결심했다!! 고려대학교에서 수강할 수 있는 n개의 수업의 요일과 시작 교시, 끝 교시가 주어진다. 요일 w는 월요일부터 금요일까지 각각 1부터 5까지의 정수로 주어지며, 수업의 시작 교시 s, 끝 교시 e가 1부터 10까지의 정수로 주어진다. 수업의 학점은 e − s + 1이다. 이번 학기에 k학점을 듣고 싶은 윤헌이는 금요일에 공강이 있는 시간표의 가짓수가 궁금하다. 이때, 같은 요일, 같은 교시에 열리는 두 수업은 동시에 수강할 수 없다. 예를 들어, 화요..

BOJ/Silver 2023.04.12

[BOJ/Silver 1] 백준 25602 캔 주기(C++)

문제 링크 https://www.acmicpc.net/problem/25602 문제 랑이 집사는 자신의 고양이 랑이와 메리 둘에게 매일 아침 캔을 정확히 하나씩 준다. 랑이 집사가 가진 캔의 종류는 N가지로, 집사는 i번째 캔을 A[i]개 갖고 있다. 랑이와 메리는 입맛이 까다롭고 변덕이 심해서 매일 각 캔에 대한 만족도가 다르다. i번째 날 랑이가 j번째 캔을 먹었을 때 만족도는 R[i][j], i번째 날 메리가 j번째 캔을 먹었을 때 만족도는 M[i][j]로 나타난다. 자연수 N과 A, R, M 배열이 주어질 때, 랑이 집사가 현재 가진 캔으로 K일동안 랑이와 메리에게 하루에 하나의 캔을 줘서 얻을 수 있는 만족도의 합의 최댓값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N, K가 주어진다. (..

BOJ/Silver 2023.04.12

[BOJ/Platinum 5] 백준 9202 Boggle(C++)

문제 링크 https://www.acmicpc.net/problem/9202 9202번: Boggle 각각의 Boggle에 대해, 얻을 수 있는 최대 점수, 가장 긴 단어, 찾은 단어의 개수를 출력한다. 한 Boggle에서 같은 단어를 여러 번 찾은 경우에는 한 번만 찾은 것으로 센다. 가장 긴 단어가 여러 개 www.acmicpc.net 문제 상근이는 보드 게임 "Boggle"을 엄청나게 좋아한다. Boggle은 글자가 쓰여 있는 주사위로 이루어진 4×4 크기의 그리드에서 최대한 많은 단어를 찾는 게임이다. 상근이는 한 번도 부인을 Boggle로 이겨본 적이 없다. 이렇게 질 때마다 상근이는 쓰레기 버리기, 설거지와 같은 일을 해야 한다. 이제 상근이는 프로그램을 작성해서 부인을 이겨보려고 한다. Bo..

[BOJ/Gold 4] 백준 18188 다오의 데이트(C++)

문제 링크 https://www.acmicpc.net/problem/18188 18188번: 다오의 데이트 세번째 입출력 예제의 경우, 다오는 어떻게 움직이더라도 디지니를 만날 수 없다. 만약 다오가 처음에 윗쪽으로 움직인다면, 두번째로 움직일 때에는 아랫쪽으로 갈 수밖에 없다. 왜냐하면 그때 www.acmicpc.net 문제 12월인 오늘, 크레이지 파크의 버블힐에는 첫 눈이 내렸다. 새하얗고 예쁜 첫 눈을 디지니와 함께 보고 싶은 다오는, 눈 오는 것을 핑계로 디지니와 데이트를 하고자 한다. 버블힐은 세로 H칸, 가로 W칸인 격자 모양이다. 그중 몇몇 칸에는 블록이 놓여져 있기에 지나갈 수 없다. 위에서 i번째 행, 왼쪽에서 j번째 열의 칸의 위치를 (i, j)라고 나타내자. 즉, 가장 왼쪽 위의 칸..

BOJ/Gold 2023.01.10

[BOJ/Gold 4] 백준 25689 고속의 무작위 숫자 탐색(C++)

문제 링크 https://www.acmicpc.net/problem/25689 25689번: 고속의 무작위 숫자 탐색 5 x 5 크기의 보드가 주어진다. 보드는 1 x 1 크기의 정사각형 격자로 이루어져 있다. 보드의 격자에는 -1, 0, 1, 2, 3, 4, 5, 6, 7중 하나의 수가 적혀 있다. 격자의 위치는 (r, c)로 표시한다. r은 행 번호, www.acmicpc.net 문제 5 x 5 크기의 보드가 주어진다. 보드는 1 x 1 크기의 정사각형 격자로 이루어져 있다. 보드의 격자에는 -1, 0, 1, 2, 3, 4, 5, 6, 7중 하나의 수가 적혀 있다. 격자의 위치는 (r, c)로 표시한다. r은 행 번호, c는 열 번호를 나타낸다. 행 번호는 맨 위 위치가 0이고 아래 방향으로 1씩 증..

BOJ/Gold 2023.01.04

[BOJ/Gold 5] 백준 25688 빠른 무작위 숫자 탐색(C++)

문제 링크 https://www.acmicpc.net/problem/25688 25688번: 빠른 무작위 숫자 탐색 5 x 5 크기의 보드가 주어진다. 보드는 1 x 1 크기의 정사각형 격자로 이루어져 있다. 보드의 격자에는 -1, 0, 1, 2, 3, 4, 5, 6중 하나의 수가 적혀 있다. 격자의 위치는 (r, c)로 표시한다. r은 행 번호, c www.acmicpc.net 문제 5 x 5 크기의 보드가 주어진다. 보드는 1 x 1 크기의 정사각형 격자로 이루어져 있다. 보드의 격자에는 -1, 0, 1, 2, 3, 4, 5, 6중 하나의 수가 적혀 있다. 격자의 위치는 (r, c)로 표시한다. r은 행 번호, c는 열 번호를 나타낸다. 행 번호는 맨 위 위치가 0이고 아래 방향으로 1씩 증가한다. ..

BOJ/Gold 2023.01.03

[BOJ/Gold 4] 백준 15811 복면산?!(C++)

문제 링크 https://www.acmicpc.net/problem/15811 15811번: 복면산?! 복면산이란 수학 퍼즐의 일종으로, 어떤 계산식의 각 숫자들을 특정 문자로 바꾸면 각 문자가 어떤 숫자인지 맞추는 퍼즐이다. 대표적으로 SEND+MORE=MONEY가 있다. SEND + MORE ------ MONEY S=9, E=5, N=6, D=7, www.acmicpc.net 문제 복면산이란 수학 퍼즐의 일종으로, 어떤 계산식의 각 숫자들을 특정 문자로 바꾸면 각 문자가 어떤 숫자인지 맞추는 퍼즐이다. 대표적으로 SEND+MORE=MONEY가 있다. SEND + MORE ------ MONEY S=9, E=5, N=6, D=7, M=1, O=0, R=8, Y=2로 바꾸면 식이 성립한다. 9567 +..

BOJ/Gold 2022.12.28