인프런 커뮤니티 질문&답변
8번문제와 차이점 질문
작성
·
180
0
8번 문제의 경우 size만큼 탐색을 하셨는데, 9번은 그렇지 않습니다. 이부분에 대한 차이를 정확히 감이 잡히지 않아 질문드립니다. 좋은 강의 감사드립니다.
답변 1
0
김태원
지식공유자
안녕하세요^^
9번은 7번(송아지 찾기)과 같은 거리배열을 사용해서 했기 때문에 L(레벨값)이 필요없이 한 것입니다.
일단은 7번 이해하시고, 그 연장선상에서 2차원 거리배열을 쓴 9번을 이해하셨으면 합니다.
7번 송아지 찾기를 8번 스타일처럼 L(레벨값)으로 푼게 아래 코드입니다.
7번 송아지 찾기 문제를 통해서 거리배열을 쓰는 것과 L(레벨값)을 쓰는 것을 비교해보시기 바랍니다.
import sys
from collections import deque
#sys.stdin=open("in1.txt", "r")
MAX = 10000
ch = [0] * (MAX+1)
n,m = map(int,input().split())
ch[n] = 1
dQ = deque()
dQ.append(n)
L=0
flag=1
while dQ and flag==1:
size=len(dQ)
for i in range(size):
if(flag==0):
break
now = dQ.popleft()
for next in (now-1, now+1, now+5):
if(next==m):
print(L+1)
flag=0
break
if 0 <= next <= MAX:
if ch[next]==0:
dQ.append(next)
ch[next] = 1
L+=1
9번같은 문제는 2차원 거리배열을 쓰는게 좋습니다.





