2차원 배열 문제를 근래 처음 접해서 푸는데 어렵다 어려워!
멘토님이 개발에서 x와 y축은 실제와 다르게 x는 아래로, y는 우측으로 생각하는걸 직관적으로 느낄 수 있어야 한다는 조언을 해주셨다.
그리고 input() 내용을 문제풀이에 접근할 수 있게끔 자료구조화하는 초기화 작업이 중요하다.
arr = [
[1,2,3],
[4,5,6],
[7,8,9],
]
dx = [0, 0, 1, -1] #dx -> 이동할 수 있다는 의미
dy = [1, -1, 0, 0]
for i in range(4):
nx = x + dx[i] # next x 의미.
ny = y + dy[i]
# 이동할 수 있는 위치를 받았을 때
from 1 to 2, 3 (1에서 2, 3으로 갈 수 있다.)
3 -> 4 (3에서 4로 갈 수 있다.)
5 -> 7
# 아래처럼 표시할 수 있음
arr = {
1: [2,3],
3: [4],
5: [7]
}
백준 2606번 바이러스 문제 접근하기.
n = int(input())
graph = defaultdict(list)
for _ in range(n):
com1, com2 = map(int, input().split())
if com not in graph:
{ # 이동할 수 있는 곳. 그래프로 만들어서 사용하기
1: [2, 5],
2: [1, 3, 5],
3: [2],
4: [7]
}
graph[1] -> [2, 5]
백준 1244번: 스위치 켜고 끄기 (실버 4)
백준 2606번: 바이러스 (실버 3)
백준 3107번: IPv6 (골드 5)
백준 15686: 치킨 배달 (골드 5)