본문 바로가기
반응형

백트래킹5

[Python] 백준 17836: 공주님을 구해라! solved.ac기준 Gold 5문제용사는 마왕이 숨겨놓은 공주님을 구하기 위해 (N, M) 크기의 성 입구 (1,1)으로 들어왔다. 마왕은 용사가 공주를 찾지 못하도록 성의 여러 군데 마법 벽을 세워놓았다. 용사는 현재의 가지고 있는 무기로는 마법 벽을 통과할 수 없으며, 마법 벽을 피해 (N, M) 위치에 있는 공주님을 구출해야만 한다.마왕은 용사를 괴롭히기 위해 공주에게 저주를 걸었다. 저주에 걸린 공주는 T시간 이내로 용사를 만나지 못한다면 영원히 돌로 변하게 된다. 공주님을 구출하고 프러포즈 하고 싶은 용사는 반드시 T시간 내에 공주님이 있는 곳에 도달해야 한다. 용사는 한 칸을 이동하는 데 한 시간이 걸린다. 공주님이 있는 곳에 정확히 T시간만에 도달한 경우에도 구출할 수 있다. 용사는 상하좌.. 2024. 7. 19.
[Python] 백준 31946: 죽음의 등굣길 solved.ac기준 Silver 1문제입력출력지훈이가 살아서 등교에 성공할 수 있으면 ALIVE, 그렇지 않으면 DEAD를 출력한다.예제 입력 1230 0 00 0 01예제 출력 1ALIVE예제 입력 2220 00 15예제 출력 2DEAD 정답 코드from collections import dequeN = int(input())M = int(input())arr = [list(map(int, input().split())) for _ in range(N)]X = int(input())visited = [[False] * M for _ in range(N)]q = deque()q.append((0, 0))visited[0][0] = Trueresult = "DEAD"color = arr[0][0]whil.. 2024. 7. 18.
[Python] 백준 1182: 부분수열의 합 solved.ac기준 Silver 2 요즘 들어 슬럼프가 오는 기분. 간단한 문제도 잘 읽히지가 않는 현상이 와 천천히 풀고 있다. 이번 문제도 처음에 접근법을 헷갈려 한참 해메다가 풀었다.  문제N개의 정수로 이루어진 수열이 있을 때, 크기가 양수인 부분수열 중에서 그 수열의 원소를 다 더한 값이 S가 되는 경우의 수를 구하는 프로그램을 작성하시오.입력첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다.출력첫째 줄에 합이 S가 되는 부분수열의 개수를 출력한다.예제 입력 15 0-7 -3 -2 5 8예제 출력 11정답 코드N, S =.. 2024. 7. 5.
[Python] 백준 1189: 컴백홈 solved.ac 기분 Silver 1 백트래킹 문제는 모든 경우의 수를 살펴보는 럭키브루트포스(?)이기 때문에 분기문을 잘 작성해야 시간초과, 메모리 문제에서 벗어날 수 있다. 그러한 기틀을 다지기 위해 재귀를 구성해 중간에 살펴보지 않아도 되는 케이스는 도려낼 수 있는 로직으로 구성해 풀 수 있는 문제이다.문제한수는 캠프를 마치고 집에 돌아가려 한다. 한수는 현재 왼쪽 아래점에 있고 집은 오른쪽 위에 있다. 그리고 한수는 집에 돌아가는 방법이 다양하다. 단, 한수는 똑똑하여 한번 지나친 곳을 다시 방문하지는 않는다.      cdef  ...f  ..ef  ..gh  cdeh  cdej  ...f       bT..  .T.e  .Td.  .Tfe  bTfg  bTfi  .Tde       a... .. 2024. 7. 1.
[Python] 백준 1326: 폴짝폴짝 solved.ac 기준 Silver2 난이도에 비해 유난히 낮은 정답률을 보여 풀게 된 문제이다. 하지만 문제를 해석해보면 BFS 활용 시 크게 어려운 문제는 아닌 듯 보이지만, 아마도 문제의 모호한 면이 문제의 정답률을 낮춘게 아닐까 하는 생각이다.문제개구리가 일렬로 놓여 있는 징검다리 사이를 폴짝폴짝 뛰어다니고 있다. 징검다리에는 숫자가 각각 쓰여 있는데, 이 개구리는 매우 특이한 개구리여서 어떤 징검다리에서 점프를 할 때는 그 징검다리에 쓰여 있는 수의 배수만큼 떨어져 있는 곳으로만 갈 수 있다.이 개구리는 a번째 징검다리에서 b번째 징검다리까지 가려고 한다. 이 개구리가 a번째 징검다리에서 시작하여 최소 몇 번 점프를 하여 b번째 징검다리까지 갈 수 있는지를 알아보는 프로그램을 작성하시오.입력첫째.. 2024. 6. 28.
반응형