๊ธฐ๋ก๋ฐฉ

BOJ_20207 : ๋‹ฌ๋ ฅ ๋ณธ๋ฌธ

CodingTest/Python

BOJ_20207 : ๋‹ฌ๋ ฅ

Soom_1n 2022. 7. 21. 17:42

๐Ÿ‘‰ ๋ฌธ์ œ๋งํฌ

 

20207๋ฒˆ: ๋‹ฌ๋ ฅ

 ์ˆ˜ํ˜„์ด๋Š” ์ผ๋…„์˜ ๋‚ ์งœ๊ฐ€ 1์ผ๋ถ€ํ„ฐ 365์ผ๋กœ ํ‘œ์‹œ๋˜์–ด์žˆ๋Š” ๋‹ฌ๋ ฅ์„ ๊ฐ€์ง€๊ณ ์žˆ๋‹ค. ์ˆ˜ํ˜„์ด๋Š” ๋„ˆ๋ฌด๋‚˜๋„ ๊ณ„ํš์ ์ธ ์‚ฌ๋žŒ์ด๋ผ ์˜ฌ ํ•ด ์ผ์ •์„ ๋ชจ๋‘ ๊ณ„ํšํ•ด์„œ ๋‹ฌ๋ ฅ์— ํ‘œ์‹œํ•ด๋†จ๋‹ค.  ์—ฌ๋ฆ„์ด ๊ฑฐ์˜ ๋๋‚˜๊ฐ€์ž ์žฅ

www.acmicpc.net



๐Ÿ”ธ ๋ฌธ์ œ ๋ถ„์„ ๐Ÿ”ธ

  • ๊ทœ์น™์— ๋”ฐ๋ผ ๋‹ฌ๋ ฅ์— ์ผ์ •์ด ํ‘œ์‹œ๋œ๋‹ค.
  • ์ด์–ด์ง„ ์ผ์ •๋“ค์˜ ๋†’์ด์™€ ๋„ˆ๋น„๋ฅผ ๊ณฑํ•ด ๋ฉด์ ์„ ๊ตฌํ•˜๊ณ , ๋ฉด์ ๋“ค์˜ ์ด ํ•ฉ์„ ์ถœ๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

๐Ÿ”ธ ์ฝ”๋“œ ๐Ÿ”ธ

import sys
input = sys.stdin.readline
print = sys.stdout.write

N = int(input())
cal = []            # ์ž…๋ ฅ๋œ ์ผ์ • ๋ฆฌ์ŠคํŠธ
calmap = [0]*366    # ์ผ์ •์„ ํ‘œ์‹œํ•  ๋‹ฌ๋ ฅ

for i in range(N):  # ์ผ์ • ์ž…๋ ฅ
    S, E = map(int, input().strip().split())
    cal.append((S,E))

# ์‹œ์ž‘ ์ผ์ด ๋น ๋ฅด๊ณ , ๊ธฐ๊ฐ„์ด ๊ธธ์ˆ˜๋ก ์•ž์ชฝ์œผ๋กœ ์ •๋ ฌ
cal = sorted(cal, key = lambda x : (x[0], -x[1]))

for s, e in cal:    # ๋‹ฌ๋ ฅ์— ์ผ์ • ํ‘œ์‹œ
    for i in range(s,e+1):
        calmap[i] += 1

answer = 0
w = 0   # ์ž„์‹œ ๋„ˆ๋น„
h = 0   # ์ž„์‹œ ๋†’์ด
flag = False     # ์ฝ”ํŒ…์ง€ ๋„ˆ๋น„ ์ฒดํฌ ์ค‘ ์—ฌ๋ถ€
for i in calmap: # ๋‹ฌ๋ ฅ ํ™•์ธ
    if flag:        # ์ฝ”ํŒ…์ง€ ๋„ˆ๋น„ ํ™•์ธ X
        if i != 0:  # ์ฝ”ํŒ…์ง€ ๋„ˆ๋น„ ํ™•์ธ ์‹œ์ž‘
            flag = True
            w += 1
            h = i
    else:           # ์ฝ”ํŒ…์ง€ ๋„ˆ๋น„ ํ™•์ธ์ค‘
        if i == 0:  # ์ฝ”ํŒ…์ง€ ๋„ˆ๋น„ ํ™•์ธ ์ข…๋ฃŒ
            flag = False
            answer += w*h
            w = 0
            h = 0
        else:
            if i > h:
                h = i
            w += 1
            
answer += w*h # ์ฝ”ํŒ…์ง€ ๋„ˆ๋น„ ํ™•์ธ ์ค‘ ์ข…๋ฃŒ๋์„๋•Œ ๋‚จ์€๊ฑฐ ๋”ํ•ด์ฃผ๊ธฐ

print(str(answer))

๐Ÿ”ธ ์ฝ”๋“œ ํ•ด์„ ๐Ÿ”ธ

  • ๋‹ฌ๋ ฅ์„ 1์ฐจ์› ๋ฆฌ์ŠคํŠธ๋กœ ํ‘œํ˜„ํ–ˆ๋‹ค.
  • ์ž…๋ ฅ๋œ ์ผ์ •์„ 2๊ฐ€์ง€ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•ด ๋‹ฌ๋ ฅ์— ํ‘œ์‹œํ•˜๋ฉด ๊ทœ์น™์„ ์ง€ํ‚ค๋ฉฐ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ผ์ •์ด ๋๋‚˜์ง€ ์•Š๊ณ  ๋‹ฌ๋ ฅ์ด ๋๋‚˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•ด ๋งˆ์ง€๋ง‰์— ํ•œ๋ฒˆ ๋” ๋”ํ•ด์ค€๋‹ค.

๐Ÿ”ธ end ๐Ÿ”ธ

  • ์‹ค๋ฒ„ 1๋ฌธ์ œ์ง€๋งŒ ์•„์ด๋””์–ด ๊ตฌ์ƒ์ด ์ž˜ ๋˜์–ด, ํฌ๊ฒŒ ์–ด๋ ต์ง€ ์•Š๊ฒŒ ํ’€์€ ๊ฒƒ ๊ฐ™๋‹ค.
  • 2๊ฐ€์ง€ ์กฐ๊ฑด์˜ ์ •๋ ฌ ๋ฐฉ๋ฒ•์ด ๊ธฐ์–ต๋‚˜์ง€ ์•Š์•„ ๊ฒ€์ƒ‰ํ•ด์„œ ์‚ฌ์šฉํ–ˆ๋‹ค.
  • ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋ฌธ์ œ๋ผ๋Š”๋ฐ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š๊ณ  ํ’€์—ˆ๋‹ค. ๋”ฐ์ง€๊ณ  ๋ณด๋ฉด ์กฐ๊ฑด์— ๋งž๊ฒŒ ์ผ์ •์„ ๋‹ฌ๋ ฅ์— ์จ์•ผํ•˜๋‹ˆ ๊ทธ๋ฆฌ๋””๊ฐ€ ๋งž๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

728x90

'CodingTest > Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

BOJ_2775 : ๋ถ€๋…€ํšŒ์žฅ์ด ๋ ํ…Œ์•ผ  (0) 2022.08.07
BOJ_2751 : ์ˆ˜ ์ •๋ ฌํ•˜๊ธฐ 2  (0) 2022.08.02
BOJ_10828 : ์Šคํƒ  (0) 2022.07.30
BOJ_12933 : ์˜ค๋ฆฌ  (0) 2022.07.21
BOJ_17413 : ๋‹จ์–ด ๋’ค์ง‘๊ธฐ 2  (0) 2022.07.21