T = 10
# 여러개의 테스트 케이스가 주어지므로, 각각을 처리합니다.
for test_case in range(1, T + 1):
n = int(input())
bds = list(map(int, input().split()))
answer = 0
for idx, item in enumerate(bds):
if idx < 2 or idx > n-3:
continue
maxHeight = max(bds[idx-2], bds[idx-1], bds[idx+1], bds[idx+2])
if maxHeight < bds[idx]:
answer += bds[idx] - maxHeight
print("#" + str(test_case), answer)
삼성 코테 형식을 익히기 위해 SWEA 사이트에서 문제를 풀기 시작했다.
역시 적응이 좀 필요할 것 같다.
input.txt로 입력 받아오고 제출할 땐 또 주석처리 해야 하는 것과, 모든 테스트 케이스가 하나의 코드의 반복문으로 실행된다는 점(프로그래머스는 테스트 케이스 별로 하나의 함수가 여러 번 실행됨), 파이참 ide로 작성 후 복붙해서 제출해야 한다는 점 등 자잘하게 신경써야 할 게 조금 있다.
이 문제의 경우는 매우 쉬웠고, 삼성 기출 대비는 난이도 D4~D6 수준 정도라고 하니 앞으로는 그렇게 풀어야 겠다. (위 문제는 D3)
문제 출처: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV134DPqAA8CFAYh