Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 학생메일
- 그램 액정 교체비용
- 싸피 지원자격
- LG 서비스센터 영업시간
- 싸피 혜택
- 봄 노래
- 싸피 모집설명회
- 코딩테스트
- 싸피 모집설명회 다시보기
- 싸피 11기
- 정처기 인강 추천
- gram 액정 교체
- 폰 위치추적
- 코드트리
- 정처기 후기
- 정보처리기사 준비물
- 인디노래 추천
- 폰 잃어버렸을때
- #코드트리 #코딩테스트 #코딩테스트실력진단
- 삼성 싸피 지원
- SSAFY
- 폰 도난
- 정보처리기사 실기
- 정처기 실기
- 폰 찾기
- 삼성 싸피
- 싸피 추천코드
- 싸피 추천인
- 코딩테스트실력진단
- 갤럭시 위치추적
Archives
- Today
- Total
포포's 코딩&일상 기록
8월 9일 수요일 코테 본문
No. 1
- 문제 : BFS 탐색 / 네 방향 탈출 가능 여부 판별하기
코드트리 | 코딩테스트 준비를 위한 알고리즘 정석
국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.
www.codetree.ai


코드
시간초과남... ㅠ 쌤이하라는대로 했는데 왜 ...

n,m = map(int,input().split())
result =0
# 그래프 생성
graph = []
for _ in range(n):
a= list(map(int,input().split()))
graph.append(a)
# 그래프 좌표 찍기
for i in range(n):
for j in range(m):
if graph[i][j] ==1:
graph[i][j] = (i,j)
# 그래프 탐색 방향설정용 상 -> 시계방향
di = [-1, 0, 1, 0]
dj = [0, 1, 0, -1]
# BFS 용 큐
q =[(0,0)]
# 그래프 탐색
while q : # 큐에 값이 있는동안 계속 반복
k = q.pop(0) #값을 하나뺀다 (c,t)
graph[k[0]][k[1]] = 'V'#해당점을 방문표시
for t in range(4):
ddi = k[0]+di[t] #각 좌표값 위아래 검사하면서 큐에넣어야함..
ddj = k[1]+dj[t]
#범위 벗어나지 않게 조치
if 0 <= ddi < n and 0 <= ddj < m:
exp = graph[ddi][ddj]
else:
continue
if exp == (n-1,m-1):
result = 1 #결과값을 1로 변경
break
if exp != 0 and exp != 'V': #뱀이아니거나 방문하지 않았다면
# 우하단에 도착했는지 확인하는코드
q.append(exp) #큐에 넣는다.
#print(graph) #디버깅용
print(result)
코드 2 : queue 를 사용해봄 -> 소용없음

from queue import Queue
n,m = map(int,input().split())
result =0
# 그래프 생성
graph = []
for _ in range(n):
a= list(map(int,input().split()))
graph.append(a)
# 그래프 좌표 찍기
for i in range(n):
for j in range(m):
if graph[i][j] ==1:
graph[i][j] = (i,j)
# 그래프 탐색 방향설정용 상 -> 시계방향
di = [-1, 0, 1, 0]
dj = [0, 1, 0, -1]
# BFS 용 큐
q = Queue()
q.put((0,0))
# 그래프 탐색
while q.qsize() != 0 : # 큐에 값이 있는동안 계속 반복
k = q.get() #값을 하나뺀다 (c,t)
graph[k[0]][k[1]] = 'V'#해당점을 방문표시
for t in range(4):
ddi = k[0]+di[t] #각 좌표값 위아래 검사하면서 큐에넣어야함..
ddj = k[1]+dj[t]
#범위 벗어나지 않게 조치
if 0 <= ddi < n and 0 <= ddj < m:
exp = graph[ddi][ddj]
#print(exp) 디버깅용
else:
continue
if exp == (n-1,m-1):
result = 1 #결과값을 1로 변경
break
if exp != 0 and exp != 'V': #뱀이아니거나 방문하지 않았다면
# 우하단에 도착했는지 확인하는코드
q.put(exp) #큐에 넣는다.
#print(graph) #디버깅용
print(result)
새롭게 알게된것
주의할점
'코테' 카테고리의 다른 글
8월 12일 토요일 코테 (0) | 2023.08.18 |
---|---|
8월 11일 금요일 코테 (0) | 2023.08.18 |
8월 8일 화요일 코테 (0) | 2023.08.18 |
8월 7일 월요일 코테 (0) | 2023.08.18 |
8월 6일 일요일 코테 (0) | 2023.08.18 |