문제
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV134DPqAA8CFAYh
나의 코드 :8분 21초
T = 10
for test_case in range(1, T + 1):
num = int(input())
input_list = list(map(int, input().split()))
answer = 0
for i in range(2,num-2):
target = input_list[i-2:i+3]
if max(target) == target[2]:
target.sort()
answer+=(target[-1]-target[-2])
print("#"+str(test_case),answer)
여유시간 20분정도 남아서 빨리 풀만한 문제로 선택해서 풀었다.
어떤 식으로 문제를 풀지 생각하는게 더 걸린 문제
무식하게 푸는 방법은 바로생각났으나 좀더 쉽게 풀기 위해 생각해봄
빌딩 하나를 기준으로 양 옆 2개씩 묶어서 길이가 5인 리스트를 target으로 잡는다.
만약 타겟의 중심이 되는 빌딩이 가장 높은 건물이 아니면 조망권을 확보한 세대는 없으므로 다음 빌딩으로 넘어간다.
만약 가장 높은 건물이 중심이 되는 건물이라면? 두번째로 높은 빌딩과의 차이를 count한다.
'공부-코딩테스트 > 코테풀이 - 자바, 파이썬' 카테고리의 다른 글
1229. [S/W 문제해결 기본] 8일차 - 암호문2 (코딩테스트, SW Expert Academy) (0) | 2022.05.09 |
---|---|
1220. [S/W 문제해결 기본] 5일차 - Magnetic (코딩테스트, SW Expert Academy) (0) | 2022.05.07 |
2001. 파리 퇴치 (코딩테스트, SW Expert Academy) (0) | 2022.05.06 |
1216. [S/W 문제해결 기본] 3일차 - 회문2 (코딩테스트, SW Expert Academy) (0) | 2022.05.05 |
1979. 어디에 단어가 들어갈 수 있을까 (코딩테스트, SW Expert Academy) (0) | 2022.05.03 |
댓글