프로그래머스 코딩테스트 고득점 Kit의 문제입니다.
https://programmers.co.kr/learn/challenges?tab=algorithm_practice_kit
문제
https://programmers.co.kr/learn/courses/30/lessons/81302
내가 작성한 코드
def is_find(places, i, j):
dir_one = [(0,1),(1,0),(0,-1),(-1,0)]
dir_two = [((-1, -1),[(-1,0),(0,-1)]),
((1, 1),[(1,0),(0,1)]),
((1,-1),[(1,0),(0,-1)]),
((-1,1),[(-1,0),(0,1)]),
((2,0),[(1,0)]),
((0,2),[(0,1)]),
((-2,0),[(-1,0)]),
((0,-2),[(0,-1)])]
for d_i, d_j in dir_one:
nw_i, nw_j = i+d_i, j+d_j
if 0 <= nw_i < 5 and 0 <= nw_j < 5 and places[nw_i][nw_j] == 'P':
return False
for d, n in dir_two:
d_i, d_j = d
nw_i, nw_j = i + d_i, j + d_j
if 0 <= nw_i < 5 and 0 <= nw_j < 5 and places[nw_i][nw_j] == 'P':
for n_i, n_j in n:
non_i, non_j = i + n_i, j + n_j
if 0 <= non_i < 5 and 0 <= non_j < 5 and places[non_i][non_j] != 'X':
return False
return True
def true_false(place):
for i in range(5):
for j in range(5):
if place[i][j] == 'P' and not is_find(place, i, j):
return 0
return 1
def solution(places):
answer = []
for place in places:
answer.append(true_false(place))
return answer
- 좌표
- P 위치에 대해 필요한 X가 있는지 확인하여 bool로 반환
다른 사람이 작성한 코드
None
기억해야할 것
- 전체 좌표를 탐색해야하므로, 특별히 좋은 방법은 없을 듯 하다
'코딩테스트' 카테고리의 다른 글
[프로그래머스][KAKAO_인턴][2021] 미로 탈출 (0) | 2021.09.05 |
---|---|
[프로그래머스][KAKAO_인턴][2021] 표 편집 (0) | 2021.09.05 |
[프로그래머스][KAKAO_인턴][2021] 숫자 문자열과 영단어 (0) | 2021.09.05 |
[프로그래머스][KAKAO_BLIND][2018] 자동 완성 (0) | 2021.09.03 |
[프로그래머스][KAKAO_BLIND][2018] 셔틀버스 (0) | 2021.09.03 |