반응형
리뷰
최악의 케이스를 봤을때 10 * 1000 * 4로 총 4만이므로 시간이 널널할 것으로 예상되어 시간 복잡도 신경 안쓰고 풀었다.
문제 풀이
- 테스트 케이스가 10개이므로 range가 10인 for문을 시작한다.
- 비교하기 쉽게 하기 위해 리스트를 받아올 때 앞 뒤로 0을 2개씩 넣어 주었다.
- 앞 뒤 0이 아닌 범위만 for문을 돌려 현재 위치 기준 좌우 2의 건물 크기중 가장 큰 값을 현재 건물과 비교한다.
- 현재 건물의 크기가 좌우 2 건물의 크기보다 클 경우 result에 그 차이만큼 더해준다.
- 이후 테스트케이스 번호와 함께 result 값을 출력
참고 사항
없음
정답 코드
def q1206():
# SWEA 1206번 D3 [S/W 문제해결 기본] 1일차 - View 파이썬
for i in range(1, 11):
n = int(input())
lst = [0] * 2 + list(map(int, input().split())) + [0] * 2
result = 0
for j in range(2, len(lst) - 2):
temp = lst[j] - max(max(lst[j-2:j]), max(lst[j + 1:j + 3]))
if temp > 0:
result += temp
print(f'#{i} {result}')
q1206()
728x90
반응형
'알고리즘 공부 > 파이썬(Python)' 카테고리의 다른 글
백준 27396번 파이썬 문자열 변환과 쿼리 (1) | 2024.07.01 |
---|---|
SWEA 1208번 D3 [S/W 문제해결 기본] 1일차 - Flatten 파이썬 (0) | 2024.06.30 |
SWEA 10965번 D3 제곱수 만들기 파이썬 (0) | 2024.06.30 |
백준 3085번 사탕 게임 파이썬 (0) | 2024.06.30 |
백준 1063번 킹 파이썬 (0) | 2024.06.29 |