SW Expert

[SWEA] 1206 View Python

꿀떡최고 2021. 4. 30. 10:00
반응형

[ 문제 ]

 

난이도:  D3

문제 번호:  1206

 

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV134DPqAA8CFAYh&categoryId=AV134DPqAA8CFAYh&category 

Type=CODE&problemTitle=1206&orderBy=FIRST_REG_DATETIME&selectCodeLang

=ALL&select-1=&pageSize=10&pageIndex=1

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


 

강변에 빌딩들이 옆으로 빽빽하게 밀집한 지역이 있다.

이곳에서는 빌딩들이 너무 좌우로 밀집하여, 강에 대한 조망은 모든 세대에서 좋지만

왼쪽 또는 오른쪽 창문을 열었을 때

바로 앞에 옆 건물이 보이는 경우가 허다하였다.

그래서 이 지역에서는 왼쪽과 오른쪽으로 창문을 열었을 때,

양쪽 모두 거리 2 이상의 공간이 확보될 때 조망권이 확보된다고 말한다.

빌딩들에 대한 정보가 주어질 때, 조망권이 확보된 세대의 수를 반환하는 프로그램을 작성하시오.
 
아래와 같이 강변에 8채의 빌딩이 있을 때, 연두색으로 색칠된 여섯 세대에서는

좌우로 2칸 이상의 공백이 존재하므로 조망권이 확보된다.

따라서 답은 6이 된다.

 

A와 B로 표시된 세대의 경우는 왼쪽 조망은 2칸 이상 확보가 되었지만

오른쪽 조망은 한 칸 밖에 확보가 되지 않으므로 조망권을 확보하지 못하였다.

C의 경우는 반대로 오른쪽 조망은 2칸이 확보가 되었지만

왼쪽 조망이 한 칸 밖에 확보되지 않았다.

 


 

[ 코드 ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
= 10
 
for test_case in range(1, T + 1):
    a = input()
    numbers = list(map(int, input().split()))
 
    total = 0
    for i in range(2len(numbers) - 1):
        if numbers[i] >= numbers[i - 1and numbers[i] >= numbers[i - 2]:
            if numbers[i] >= numbers[i + 1and numbers[i] >= numbers[i + 2]:
                if numbers[i - 1>= numbers[i - 2and numbers[i + 1>= numbers[i + 2]:
                    if numbers[i - 1>= numbers[i + 1]:
                        total += numbers[i] - numbers[i - 1]
                    else:
                        total += numbers[i] - numbers[i + 1]
                elif numbers[i - 1>= numbers[i - 2and numbers[i + 1<= numbers[i + 2]:
                    if numbers[i - 1>= numbers[i + 2]:
                        total += numbers[i] - numbers[i - 1]
                    else:
                        total += numbers[i] - numbers[i + 2]
                elif numbers[i - 1<= numbers[i - 2and numbers[i + 1>= numbers[i + 2]:
                    if numbers[i - 2>= numbers[i + 1]:
                        total += numbers[i] - numbers[i - 2]
                    else:
                        total += numbers[i] - numbers[i + 1]
                else:
                    if numbers[i - 2>= numbers[i + 2]:
                        total += numbers[i] - numbers[i - 2]
                    else:
                        total += numbers[i] - numbers[i + 2]
    print(f'#{test_case} {total}')
cs
반응형

'SW Expert' 카테고리의 다른 글

[SWEA] 1232 사칙연산 Python  (0) 2021.05.04
[SWEA] 1231 중위순회 Python  (0) 2021.05.03
[SWEA] 1208 Flatten Python  (0) 2021.05.02
[SWEA] 1204 최빈수 구하기Python  (0) 2021.05.01
[SWEA] 2814 최장 경로 Python  (0) 2021.04.29