문제
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14vXUqAGMCFAYD
나의 코드
def search_table(table,start,end,record_list,rec):
able = [[record_list[-1][0]+1,record_list[-1][1]],
[record_list[-1][0],record_list[-1][1]+1],
[record_list[-1][0]-1,record_list[-1][1]],
[record_list[-1][0],record_list[-1][1]-1]]
for ab in able:
if table[ab[0]][ab[1]] != 1 and table[ab[0]][ab[1]] != 2 and 3 not in rec: #0 또는 3을 찾았을 때
rec.append(table[ab[0]][ab[1]])
table[ab[0]][ab[1]] = 2
record_list.append(ab)
search_table(table,start,end,record_list,rec)
record_list.pop()
T = 10#int(input())
for test_case in range(1, T + 1):
tc = int(input())
table = []
start, end= [], []
rec = []
answer = 0
for i in range(16):
target = list(map(int,input()))
table.append(target)
if 2 in target:
start = [i,target.index(2)]
if 3 in target:
end = [i, target.index(3)]
record_list = [start]
search_table(table,start,end,record_list,rec)
if 3 in rec:
answer = 1
print(f"#{test_case}",answer)
다른 사람 코드도 확인해보니 내코드가 답도없이 매우 길다는 것을 알게되었다.
실제로 end를 쓰지 않았고 불필요한 부분을 제외하고 탐색하는 표현을 위와 같은 방법말고 [0,0,1,1]이렇게 간단히 줄이면 거의 비슷하지 않을까? 생각은 했다.
'공부-코딩테스트 > 코테풀이 - 자바, 파이썬' 카테고리의 다른 글
괄호 회전하기 (파이썬, 프로그래머스, 코딩테스트) (5) | 2022.07.16 |
---|---|
게임 맵 최단거리 (코딩테스트, 프로그래머스, 파이썬) (0) | 2022.07.16 |
2806. N-Queen (코딩테스트, SW Expert Academy) (0) | 2022.05.12 |
1859. 백만 장자 프로젝트 (코딩테스트, SW Expert Academy) (2) | 2022.05.10 |
5356. 의석이의 세로로 말해요 (코딩테스트, SW Expert Academy) (0) | 2022.05.10 |
댓글