728x90
반응형
SMALL

2024/08/29 3

[Python] 25418번 정수 a를 k로 만들기

✏️ 문제 문제 파악최소 연산 횟수를 구하므로 BFS를 사용해서 풀어야 한다. 문제에서 연산 종류가 2가지 있다.a + 1a * 2이를 바탕으로 다음과 같이 코드를 짜면 next_v에 v + 1, v * 2 가 차례대로 들어가게 된다.for next_v in (v+1, 2*v): 제출했는데 IndexError가 계속 떠서 애초에 if 조건문에 next_v   알고리즘그래프 이론그래프 탐색너비 우선 탐색다이나믹 프로그래밍  코드from collections import dequeimport sysinput = sys.stdin.readlinea, k = map(int, input().split())graph = [0] * (k + 1)def bfs(v): q = deque([v]) graph[v] ..

PS/BOJ 2024.08.29

[Python] 14496번 그대, 그머가 되어

✏️ 문제 문제 파악최소 치환 횟수를 구하므로 BFS를 사용해서 풀어야 한다.인접리스트를 활용해서 풀어야 하는 문제라 다음과 같이 입력을 처리하였다.for _ in range(m): u, v = map(int, input().split()) graph[u].append(v) graph[v].append(u) 그 후엔 graph를 돌며 visited 배열에 치환 횟수를 저장하며 풀었다. 예제들은 잘 출력되는데 자꾸 틀렸다고 나오길래 찾아보니 a와 b가 같은 문자라면 치환 횟수가 0이므로 0을 출력해야 한다는 것을 빼먹고 있었다.. 예제는 잘 풀리는데 퍼센트 높을 때 틀리는 사람은 a와 b가 같은 문자였을 때를 처리했는 지 확인해 보는 것을 추천! 알고리즘그래프 이론그래프 탐색너비 우선 탐색  코드..

PS/BOJ 2024.08.29

[Python] 16174번 점프왕 쩰리 (Large)

✏️ 문제 문제 파악16173번 점프왕 쩰리 (Small) 와 비슷한 문제이다. 하지만 메모리가 매우 작습니다...... (메모리 초과 3번이나 떴다ㅠ) 메모리 초과를 해결한 방법은 다음과 같다.visited 배열을 없애고 graph 배열로만 방문했는 지 구분했다.이미 방문했던 위치는 또 돌 필요가 없으므로 바로 continue를 통해 메모리를 절약하도록 했다.if graph[x][y] == 0: # 이미 방문했던 위치 continue덱에 값을 새로 넣은 후에 방문 표시를 하는 보통의 경우와 달리 덱의 값을 꺼내는 즉시 바로 방문 표시를 하였다.x, y = q.popleft()graph[x][y] = 0 알고리즘그래프 이론그래프 탐색너비 우선 탐색깊이 우선 탐색  코드from collections im..

PS/BOJ 2024.08.29
728x90
반응형
LIST