백트래킹 4

[백준/파이썬] 16432: 떡장수와 호랑이

와아아아~~ 엄청 오랜만에 문제를 풀었다 !!!! 문제 보러가기 풀이 😍 떡 종류는 1-9번! N일 동안 떡 팔러 가는데, 그날 파는 떡의 종류들은 매일 달라진다. 전날의 떡과 오늘의 떡은 꼭 달라야 한다. 떡을 줄 방법이 있으면, 매일 호랑이한테 줄 떡을 순서대로 출력한다. 떡을 줄 방법이 없으면, -1을 출력한다. 처음에는 백 트래킹을 생각했다. 호랑이한테 줄 수 있는 떡의 경우들로 가지를 뻗어보다가, 처음으로 정답까지(N일 동안 호랑이한테 다른 떡 주는 경우) 가면 그만 탐색하면 되겠다고 생각했다 !! 또 N이 최대 1000이니까 그 정도면 dfs 를 돌릴 수 있다고 생각했다! dfs 함수를 만들고 그 인자로 며칠인지(day), 그 동안 호랑이한테 준 떡들(history)을 넘겼다. 매일 호랑이한테..

[백준-파이썬] 2239: 스도쿠, 2580: 스도쿠

TMI 🤸‍♀️ 싸피 자치회 회의 - 스터디를 하고 나니 좀 피곤했다. 스터디의 문제는 좀 어렵고 잘 이해가 안돼서ㅠㅠ 풀 문제를 찾다가 이 문제(2580)를 찾았다. 문제 보러 가기 문제를 읽다 보니 전에 비슷한 문제를 푼 생각이 났다. 바로 이 문제(2239)였다. 반 년 전에, 내가 세네 번째로 푼 백준 골드 문제였던 걸로 기억한다..! 추억의 문제 >

[백준-파이썬] 21772: 가희의 고구마 먹방

문제 보러 가기 아이디어, 배운 점 😍 맨 처음엔 가희의 위치를 찾아야 한다. 그리고 가희의 위치를 길로 만들었다.(그래서 갈 수 있도록~) 가희의 위치부터 탐색을 시작한다. 상하좌우를 탐색해서 범위 내이고 장애물이면 못가니까 continue 고구마이면 거기로 이동하되, 시간과 고구마 먹은 양을 1씩 증가 길이면 거기로 이동하되, 시간만 1 증가했다. 시간이 다 되었을 때 먹은 고구마를 최대값으로 갱신한 후에 return을 해주었다. 처음에는 기계적으로..(?) visited 리스트를 만들어서 체크를 할까 했지만, 갔던 길을 또 갈 수 있으니까 체크할 필요가 없었다. 그 자리에 가만히 있을 수도 있다고 했지만 딱히 고려하진 않았다. 만약에 움직여서 고구마를 먹을 수 있으면, 고구마 먹는 게 이득이니까 움..

[백준-파이썬] 10971: 외판원 순회 2

문제 보러 가기! 아이디어 💕 도시 간 이동하는 데 드는 비용이 행렬에 저장되어 있다. 모든 도시를 순회하고, 다시 원래 출발점으로 돌아와야 한다. 이때 가장 적은 비용이 들 때 얼마나 드는지 출력하는 문제이다. 도시가 최대 10개니까 브루트포스하게 다 봐도 될 거 같다고 생각했다. 일단은 모든 도시에서 출발해보았다. 방문했던 곳은 못 가니까 방문 체크도 하고 ! 다만 원래 출발점으로는 다시 돌아와야 하니까 그 부분은 다르게 처리했다. 처음 코드(파이썬-시간초과, 파이파이- 3140ms) 😂 import sys input = sys.stdin.readline N = int(input()) cost_matrix = list(list(map(int, input().split())) for _ in range..

728x90