๐Ÿงฉ Algorithm/SWEA

[SWEA] 11736. ํ‰๋ฒ”ํ•œ ์ˆซ์ž (Python/D3)

devCloud 2024. 10. 29. 19:31
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