728x90
더보기
badukpan = list()
max_width = 19
plus_width = 5
for _ in range(plus_width):
tmp = [0]*(max_width+2*plus_width)
badukpan.append(tmp)
for _ in range(max_width):
tmp=[0] * plus_width
tmp.extend(list(map(int, input().split())))
tmp.extend([0]*plus_width)
badukpan.append(tmp)
for _ in range(plus_width):
tmp = [0]*(max_width+2*plus_width)
badukpan.append(tmp)
# for baduk in badukpan:
# print(baduk)
result = 0
for i in range(plus_width,plus_width+max_width):
for j in range(plus_width,plus_width+max_width):
tmp = badukpan[i][j]
# 방향마다 총 6개씩 확인, 총 네 방향 확인
if tmp: # tmp가 0인 아닌경우에만 확인
# 1 우향
if tmp != badukpan[i][j - 1]:
for k in range(1,5):
if tmp != badukpan[i][j+k]:
break
else:
if tmp != badukpan[i][j+5]:
result = (tmp, i, j)
#2 우하향
if tmp != badukpan[i - 1][j - 1]:
for k in range(1,5):
if tmp != badukpan[i+k][j+k]:
break
else:
if tmp != badukpan[i+5][j+5]:
result = (tmp, i,j)
#3 하향
if tmp != badukpan[i - 1][j]:
for k in range(1,5):
if tmp != badukpan[i+k][j]:
break
else:
if tmp != badukpan[i+5][j]:
result = (tmp, i, j)
#4 좌하향
if tmp != badukpan[i - 1][j + 1]:
for k in range(1,5):
if tmp != badukpan[i+k][j-k]:
break
else:
if tmp != badukpan[i+5][j-5]: #0,5 => 4,1
result = (tmp, i+4,j-4)
if result != 0:
print("{}\n{} {}".format(result[0],result[1]-plus_width+1,result[2]- plus_width+1))
else:
print(0)
브루트 포스라길래 구현은 쉽게했는데 계속 틀려서 어이없었던 문제다.
다 확인하려면 여덟 방향 모두 확인해야했는데 어차피 순차적으로 확인하므로 네 방향만 확인하면 되었다.(우측, 우하측, 하측, 좌하측)
확인할 때는 오목인지 판단하고, 육목인지도 판단해야했다.
i,j 의 바둑알을 한 방향이 되는지 판단할때, 오목의 판단은 쉬웠다.
육목이 조금 까다로웠는데 먼저 방향의 반대로 한 칸 간 곳이 같지 않은 경우에만 진행했고, 오목이라고 판단되었을때 같은 방향으로 한칸을 더 비교했다.
계속 틀린 것은 두가지 이유이었다.
첫번째는 try:except:에 대한 문제인데 try except를 사용해서 index에러에 대해서 무시하려고했지만 계속 틀려서 이게 문제인지 생각이 들었다.
그래서 테두리를 5개씩 더 줘서 인덱스 오류는 꿈에도 못꾸게 만들었다.
두번째는 문제에 대한 이해 부족이다.
답으로 내놓아야하는 것은 가장 좌측 바둑알의 위치이고, 위로 일렬로 있을 때만 제일 상위 위치를 반환하는것이었다.(이걸 캐치하는데 두시간 걸렸다)
브루트포스 참 어렵다
'STUDY > Algorithm' 카테고리의 다른 글
[백준] 2628 종이자르기 (0) | 2021.02.10 |
---|---|
[백준] 2578 빙고 (0) | 2021.02.10 |
[백준] 1011 Fly me to the Alpha Centauri (0) | 2021.02.07 |
[백준] 2839 설탕배달 (0) | 2021.02.07 |
[백준] 2775 부녀회장이 될테야 (0) | 2021.02.07 |