취업 리부트 코스 2주차(6) - 2차원 배열

김선은·2024년 4월 2일
0

취업 리부트코스

목록 보기
10/20

2차원 배열 문제를 근래 처음 접해서 푸는데 어렵다 어려워!

멘토님이 개발에서 x와 y축은 실제와 다르게 x는 아래로, y는 우측으로 생각하는걸 직관적으로 느낄 수 있어야 한다는 조언을 해주셨다.

그리고 input() 내용을 문제풀이에 접근할 수 있게끔 자료구조화하는 초기화 작업이 중요하다.

그래프 초기화 하기. (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)

profile
기록은 기억이 된다

0개의 댓글