1206. [S/W 문제해결 기본] 1일차 - View
출처 : 링크텍스트
1. 풀이 방법
빌딩의 조망권을 확보하기 위해선 자신의 위치의 앞뒤로 2개의 빌딩 보다 높아야 한다. 때문에 먼저 주변의 빌딩들 중 가장 높은 빌딩의 높이를 구한고 자신의 빌딩의 높이에서 빼주면 자신의 빌딩에서 조망권을 확보한 세대를 구할 수 있다.
2. max() 함수 사용
for test_case in range(1, 11):
width = int(input())
building = list(map(int, input().split()))
cnt = 0
for i in range(2, width - 2):
max_building = max(building[i - 2], building[i - 1], building[i + 1], building[i + 2])
if building[i] > max_building:
cnt += (building[i] - max_building)
print('#{0} {1}'.format(test_case, cnt))
3. for 구문을 이용해 최대값을 직접 구하기
for test_case in range(1, 11):
width = int(input())
building = list(map(int, input().split()))
cnt = 0
for i in range(2, width - 2):
max_building = building[i - 2]
for j in range(i - 1, i + 3):
if j == i:
continue
if max_building < building[j]:
max_building = building[j]
if building[i] > max_building:
cnt += (building[i] - max_building)
print('#{0} {1}'.format(test_case, cnt))
Author And Source
이 문제에 관하여(1206. [S/W 문제해결 기본] 1일차 - View), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dannyp0930/1206.-SW-문제해결-기본-1일차-View저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)