728x90
[๋ฌธ์ ๋งํฌ] ๐
SW Expert Academy
SW ํ๋ก๊ทธ๋๋ฐ ์ญ๋ ๊ฐํ์ ๋์์ด ๋๋ ๋ค์ํ ํ์ต ์ปจํ ์ธ ๋ฅผ ํ์ธํ์ธ์!
swexpertacademy.com
ํ์ด
min(), max() ๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ
- min() ๊ณผ max() ์ธ์์ ์ธ ๊ฐ์ ๊ฐ์ ์ ๋ฌํ์ฌ ๊ฐ๊ฐ ์ต์๊ฐ๊ณผ ์ต๋๊ฐ์ ์ฐพ๋๋ค.
- ์ต์๊ฐ์ด ์ค๊ฐ ๊ฐ๊ณผ ์ผ์นํ์ง ์๊ณ , ์ต๋๊ฐ์ด ์ค๊ฐ ๊ฐ๊ณผ ์ผ์นํ์ง ์์ผ๋ฉด ์นด์ดํธ ํ๋ค.
sorted() ๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ
- ์ธ ๊ฐ์ ๊ฐ์ sorted() ๋ก ์ ๋ ฌํ๊ณ 1๋ฒ์งธ ์ธ๋ฑ์ค๊ฐ ์ค๊ฐ ๊ฐ์ด๋ฉด ์นด์ดํธ ํ๋ค.
Solution
T = int(input()) # ํ
์คํธ ์ผ์ด์ค ์
for test_case in range(1, T + 1):
N = int(input())
nums = list(map(int, input().split()))
result = 0
for i in range(1, N - 1): # 1, 2, 3
min_num = min(nums[i - 1], nums[i], nums[i + 1]) # ์ต์๊ฐ
max_num = max(nums[i - 1], nums[i], nums[i + 1]) # ์ต๋๊ฐ
if min_num != nums[i] and max_num != nums[i]: # ์ต์๋ ์ต๋๊ฐ ์๋๋ฉด
result += 1
print(f"#{test_case} {result}")
์ด ๋ฌธ์ ๋ nums[i]๊ฐ nums[i-1], nums[i], nums[i+1] ์ค๊ฐ๊ฐ์ธ์ง ํ์ธํ๋ฉด ๋๋ฏ๋ก, ์ต์๊ฐ๊ณผ ์ต๋๊ฐ์ ๊ฐ๊ฐ ๊ตฌํ๋ ๋์ sorted๋ฅผ ์ฌ์ฉํด ๊ฐ์ด๋ฐ ๊ฐ์ธ์ง ๋น๊ตํ๋ ๋ฐฉ์์ผ๋ก ์ต์ ํํ ์ ์๋ค.
๋ณ๊ฒฝ ์ฌํญ ์ค๋ช
- sorted([nums[i - 1], nums[i], nums[i + 1]])[1] == nums[i] ์กฐ๊ฑด์ ์ฌ์ฉํ์ฌ nums[i]๊ฐ ์ค๊ฐ๊ฐ์ธ์ง ํ์ธํ๋ค.
- ์ด๋ nums[i]๊ฐ ์ต์๊ฐ๋ ์ต๋๊ฐ๋ ์๋์ง ์ฒดํฌํ๋ ๊ฒ์ ๋ ํจ์จ์ ์ผ๋ก ์ํํ ์ ์๋ค.
์ต์ ํํ ์ฝ๋
T = int(input()) # ํ
์คํธ ์ผ์ด์ค ์
for test_case in range(1, T + 1):
N = int(input())
nums = list(map(int, input().split()))
result = 0
for i in range(1, N - 1): # i๋ ์ฒซ ๋ฒ์งธ์ ๋ง์ง๋ง ์์๋ฅผ ์ ์ธํ ์ค๊ฐ ์์๋ง
if sorted([nums[i - 1], nums[i], nums[i + 1]])[1] == nums[i]: # ์ค๊ฐ๊ฐ์ด๋ฉด
result += 1
print(f"#{test_case} {result}")
728x90
'๐งฉ Algorithm > SWEA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [SWEA] 1228. [S/W ๋ฌธ์ ํด๊ฒฐ ๊ธฐ๋ณธ] 8์ผ์ฐจ - ์ํธ๋ฌธ1 (Python/D3) (0) | 2024.10.30 |
|---|---|
| [SWEA] 5356. ์์์ด์ ์ธ๋ก๋ก ๋งํด์ (Python/D3) (1) | 2024.10.29 |
| [SWEA] 3499. ํผํํธ ์ ํ (Python/D3) (0) | 2024.10.29 |
| [SWEA] 1221. [S/W ๋ฌธ์ ํด๊ฒฐ ๊ธฐ๋ณธ] 5์ผ์ฐจ - GNS (Python/D3) (0) | 2024.10.26 |
| [SWEA] 3142. ์์ค์ด์ ์ ๋นํ ๋ฟ์ ์ฒ (Python/D3) (0) | 2024.10.26 |