본문 바로가기

백트래킹61

[백준] 1107번 : 리모컨 (C++) 1107번 : 리모컨 문제) 수빈이는 TV를 보고 있다. 수빈이는 채널을 돌리려고 했지만, 버튼을 너무 세게 누르는 바람에, 일부 숫자 버튼이 고장났다. 리모컨에는 버튼이 0부터 9까지 숫자, +와 -가 있다. +를 누르면 현재 보고있는 채널에서 +1된 채널로 이동하고, -를 누르면 -1된 채널로 이동한다. 채널 0에서 -를 누른 경우에는 채널이 변하지 않고, 채널은 무한대 만큼 있다. 수빈이가 지금 이동하려고 하는 채널은 N이다. 어떤 버튼이 고장났는지 주어졌을 때, 채널 N으로 이동하기 위해서 버튼을 최소 몇 번 눌러야하는지 구하는 프로그램을 작성하시오. 수빈이가 지금 보고 있는 채널은 100번이다. 입력 : 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘.. 2024. 2. 24.
[백준] 24954번 : 물약 구매 (C++) 24954번 : 물약 구매 문제) 준겸이는 모험가이다. 모험을 떠나기 위해서는 철저한 사전 준비를 갖추어야 한다. 준겸이는 모험을 떠나기 전 N종류의 물약을 모두 구매하려고 한다. 물약 상점에 들른 준겸이는 각 물약이 1번부터 N번까지 번호가 매겨져 있다는 것을 알아냈다. 그런데, 물약 상점에서는 오늘 특별한 이벤트를 하고 있었다. 특정 물약을 구매하면, 어떤 다른 물약들을 할인해준다는 것이었다. 원래 i번째 물약의 가격은 동전 c_i개이다. 만약 i번째 물약을 구매하면, p_i종류의 다른 물약의 가격이 내려간다. 할인은 중첩된다. 예를 들어 1번 물약을 구매하면 3번 물약의 가격이 동전 1개만큼 할인되고, 2번 물약을 구매하면 역시 3번 물약의 가격이 동전 2개만큼 할인된다고 하자. 그러면 두 물약을 .. 2024. 2. 24.
[백준] 28447번 : 마라탕 재료 고르기 (C++) 28447번 : 마라탕 재료 고르기 문제) 하얔이는 마라탕에 여러 재료를 넣어 먹는 것을 좋아한다. 하지만 마라탕에 항상 많은 재료를 넣는다고 맛있는 것은 아니다. 마라탕은 각 재료마다 궁합이 존재해서 같이 넣으면 맛있는 재료도 있고 그렇지 않은 경우도 있다. 여기서 하얔이는 고민에 빠졌다. 대체 어떻게 해야 K개의 재료를 넣었을 때 마라탕의 맛을 최대로 할 수 있는거지? C_i, j를 재료 i와 재료 j를 같이 넣었을 때의 궁합이라 하자. 마라탕의 맛은 마라탕에 들어간 모든 재료 쌍의 궁합의 합이다. 고른 재료의 그룹을 G라고 했을 때 마라탕의 맛을 수식으로 표현하면 다음과 같다. 가여운 하얔이를 위해 재료를 K개만 사용했을 때의 최대의 마라탕의 맛을 구해보자. 입력 : 출력 : 첫째 줄에 K개의 재료.. 2024. 2. 24.
[백준] 1497번 : 기타콘서트 (C++) 1497번 : 기타콘서트 문제) 강토는 Day Of Mourning의 기타리스트로, 다가오는 공연을 준비하고 있다. 어느 날 강토의 집에 도둑이 들어서 기타를 모두 도둑맞고 말았다. 기타를 사야 한다. 강토는 공연 때 연주할 노래의 목록을 뽑아 놓았다. 하지만, 하나의 기타로 모든 곡을 연주할 수는 없다. 어떤 기타는 어떤 곡을 연주할 때, 이상한 소리가 나기 때문이다. 항상 완벽을 추구하는 강토는 이런 일을 용납하지 않는다. 최대한 많은 곡을 제대로 연주하려고 할 때, 필요한 기타의 최소 개수를 구하는 프로그램을 작성하시오. 예를 들어, GIBSON으로 1, 2, 3번 곡을 제대로 연주할 수 있고, FENDER로 1, 2, 5번 곡을 제대로 연주할 수 있고, EPIPHONE으로 4, 5번 곡을 제대로 .. 2024. 2. 24.