코딩테스트 거리두기 확인하기 문제풀이
프로그래머스 거리두기 확인하기(level 2) 문제풀이
def solution(places):
result = []
for n in range(len(places)):
c=1
for i in range(5):
if c == 0:
break
for j in range(5):
if places[n][i][j] == 'P':
if dis(places[n], i, j) == 0:
c = 0
break
if c == 1:
result.append(1)
else:
result.append(0)
return result
def dis(places, x, y):
dir = [(-1,0),(1,0),(0,-1),(0,1)] #상하좌우
for d in dir:
if 4>=x+d[0]>=0 and 4>=y+d[1]>=0:
if places[x+d[0]][y+d[1]] == 'P':
print(x+d[0]," ",y+d[1])
return 0
if places[x+d[0]][y+d[1]] == 'X':
continue
for j in dir:
if 4>=x+d[0]+j[0]>=0 and 4>=y+d[1]+j[1]>=0:
if d[0]+j[0] == 0 and d[1]+j[1] == 0:
continue
if places[x+d[0]+j[0]][y+d[1]+j[1]] == 'P':
print(x+d[0]+j[0]," ",y+d[1]+j[1])
return 0
return 1
우갸갹갹
각 인덱스마다 맨허튼 2거리만큼 조사를 한다 첫번째 방향에서 X표시가 나오면 continue를 한다.
Author And Source
이 문제에 관하여(코딩테스트 거리두기 확인하기 문제풀이), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kokodak/코딩테스트-거리두기-확인하기-문제풀이저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)