문제:
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV13_BWKACUCFAYh
나의코드 : 50분
T = 10
# 여러개의 테스트 케이스가 주어지므로, 각각을 처리합니다.
for test_case in range(1, T + 1):
a = int(input())
table = []
answer = []
N= 100
for i in range(N):
table.append(list(map(int, input().split())))
row = []
column = [0]*N
left, right = 0,0
count = 0
for i in table:
row.append(sum(i))
column = [a+b for a,b in zip(column,i)]
#left += i[count]
#right += i[(N-1)-count]
count+=1
answer = max(max(row),max(column),left,right)
print("#"+str(a),answer)
실제로 해결하는데 10분? 정도 걸렸지만 계속 알 수없는 실패로 통과를 못했다.
원인은 테스트케이스가 10개가 고정되고 각 첫번째 케이스마다 input을 받아야 된다는 점을 무시했었다.
평소대로 라면 테스트케이스 갯수를 T로 받았겠지만 T=10으로 고정, 테스트케이스마다 input을 받아야 됬었다.
실제 풀이방법은 간단한 노가다 수준이라 의미가 없을 듯하고 전에 해결하려던 8-Queen문제를 해결하는데 도움이 될만한 아이디어가 떠올랐다.
퀸이 행, 열로 움직일 뿐만아니라 대각선으로 움직일 수 있었기 때문에 대각선을 구할 방법을 몰랐었다.
위 문제를 풀면서 대각선 전체의 값들을 구해야되나? 라는 생각으로 고민했었는데 아이디어가 떠올랐다.
행, 열값의 덧셈과 뺄셈을 이용하면 해결가능하였다. 위 그림을 보면 이해가 갈 것이다.
두가지 경우를 통해서 문제를 해결 할 수 있지 않을까 싶다. 나중에 시도해봐야지
'공부-코딩테스트 > 코테풀이 - 자바, 파이썬' 카테고리의 다른 글
1979. 어디에 단어가 들어갈 수 있을까 (코딩테스트, SW Expert Academy) (0) | 2022.05.03 |
---|---|
1961. 숫자 배열 회전 (코딩테스트, SW Expert Academy) (0) | 2022.04.29 |
1945. 간단한 소인수분해 (코딩테스트, SW Expert Academy) (0) | 2022.04.27 |
1493. 수의 새로운 연산 (코딩테스트, SW Expert Academy) (0) | 2022.04.25 |
11445. 무한 사전 (코딩테스트, SW Expert Academy) (0) | 2022.04.25 |
댓글