20207 : ๋‹ฌ๋ ฅ

20207 : ๋‹ฌ๋ ฅ#

supposed to be surdarla logo

Surdarla

Nov 23 Thu 13:42, 2023

1 min read

  • https://d2gd6pc034wcta.cloudfront.net/tier/11.svg ๊ณจ๋“œ 5

์‹œ๊ฐ„์ œํ•œ

๋ฉ”๋ชจ๋ฆฌ์ œํ•œ

์ •๋‹ต๋น„์œจ

1์ดˆ

512MB

42%

๋ฌธ์ œ#

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

์—ฌ๋ฆ„์ด ๊ฑฐ์˜ ๋๋‚˜๊ฐ€์ž ์žฅ๋งˆ๊ฐ€ ์‹œ์ž‘๋˜์—ˆ๊ณ , ์Šต๊ธฐ๋กœ ์ธํ•ด ๋‹ฌ๋ ฅ์— ํ‘œ์‹œํ•œ ์ผ์ •์ด ์ง€์›Œ์ง€๋ ค๊ณ  ํ•œ๋‹ค. ์ง€์›Œ์ง€๋Š” ๊ฒƒ์„ ๋ง‰๊ณ ์ž ์ˆ˜ํ˜„์ด๋Š” ์ผ์ •์ด ์žˆ๋Š” ๊ณณ์—๋งŒ ์ฝ”ํŒ…์ง€๋ฅผ ๋‹ฌ๋ ฅ์— ๋ถ™์ด๋ ค๊ณ  ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๋„ˆ๋ฌด ๊ท€์ฐฎ์•˜๋˜ ๋‚˜๋จธ์ง€, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทœ์น™์„ ๋”ฐ๋ฅด๊ธฐ๋กœ ํ•œ๋‹ค.

  • ์—ฐ์†๋œ ๋‘ ์ผ์ž์— ๊ฐ๊ฐ ์ผ์ •์ด 1๊ฐœ ์ด์ƒ ์žˆ๋‹ค๋ฉด ์ด๋ฅผ ์ผ์ •์ด ์—ฐ์†๋˜์—ˆ๋‹ค๊ณ  ํ‘œํ˜„ํ•œ๋‹ค.

  • ์—ฐ์†๋œ ๋ชจ๋“  ์ผ์ •์€ ํ•˜๋‚˜์˜ ์ง์‚ฌ๊ฐํ˜•์— ํฌํ•จ๋˜์–ด์•ผ ํ•œ๋‹ค.

  • ์—ฐ์†๋œ ์ผ์ •์„ ๋ชจ๋‘ ๊ฐ์‹ธ๋Š” ๊ฐ€์žฅ ์ž‘์€ ์ง์‚ฌ๊ฐํ˜•์˜ ํฌ๊ธฐ๋งŒํผ ์ฝ”ํŒ…์ง€๋ฅผ ์˜ค๋ฆฐ๋‹ค.

๋‹ฌ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทœ์น™์„ ๋”ฐ๋ฅธ๋‹ค.

  • ์ผ์ •์€ ์‹œ์ž‘๋‚ ์งœ์™€ ์ข…๋ฃŒ๋‚ ์งœ๋ฅผ ํฌํ•จํ•œ๋‹ค.

  • ์‹œ์ž‘์ผ์ด ๊ฐ€์žฅ ์•ž์„  ์ผ์ •๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ์ฑ„์›Œ์ง„๋‹ค.

  • ์‹œ์ž‘์ผ์ด ๊ฐ™์„ ๊ฒฝ์šฐ ์ผ์ •์˜ ๊ธฐ๊ฐ„์ด ๊ธด ๊ฒƒ์ด ๋จผ์ € ์ฑ„์›Œ์ง„๋‹ค.

  • ์ผ์ •์€ ๊ฐ€๋Šฅํ•œ ์ตœ ์ƒ๋‹จ์— ๋ฐฐ์น˜๋œ๋‹ค.

  • ์ผ์ • ํ•˜๋‚˜์˜ ์„ธ๋กœ์˜ ๊ธธ์ด๋Š” 1์ด๋‹ค.

  • ํ•˜๋ฃจ์˜ ํญ์€ 1์ด๋‹ค.

https://upload.acmicpc.net/1a820e79-e5fc-4e4a-b7ad-efe42cfd7cdd/
์šฐ์„  ๋ฐฐ์—ด

์œ„์˜ ๊ทธ๋ฆผ์—์„œ์™€ ๊ฐ™์ด ์ผ์ •์ด ์ฃผ์–ด์กŒ๋‹ค๊ณ  ํ•˜์ž. ์—ฌ๊ธฐ์„œ ์ฝ”ํŒ…์ง€์˜ ๋ฉด์ ์€ ์•„๋ž˜์˜ ํŒŒ๋ž€์ƒ‰ ์˜์—ญ๊ณผ ๊ฐ™๋‹ค.

\(\to\)

https://upload.acmicpc.net/680c1b8a-7ae1-4b00-ba41-e1c61cd64846/
์ฝ”ํŒ…์ง€

์ด๋•Œ ์ฝ”ํŒ…์ง€์˜ ํฌ๊ธฐ์˜ ํ•ฉ์€ \(3 * 8 + 2 * 2 = 28\)์ด๋‹ค

input#

์ฒซ์งธ ์ค„์— ์ผ์ •์˜ ๊ฐœ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. (1 โ‰ค N โ‰ค 1000)

๋‘˜์งธ ์ค„๋ถ€ํ„ฐ ์ผ์ •์˜ ๊ฐœ์ˆ˜๋งŒํผ ์‹œ์ž‘ ๋‚ ์งœ S์™€ ์ข…๋ฃŒ ๋‚ ์งœ E๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 โ‰ค S โ‰ค E โ‰ค 365)

output#

์ฝ”ํŒ…์ง€์˜ ๋ฉด์ ์„ ์ถœ๋ ฅํ•œ๋‹ค.

think#

์Šคํƒ ๋ฌธ์ œ ์ฒ˜๋Ÿผ ๋ณด์ธ๋‹ค.

python#

import sys, os

problem_num = "20207"

path = os.getcwd() + f"\\txt\\{problem_num}" + ".txt"
sys.stdin = open(path, "r")
input = sys.stdin.readline
# sol
n = int(input())



cal = [0] * 365


for _ in range(n):
    s, e = map(int, input().split())
    for i in range(s - 1, e):
        cal[i] += 1



result = 0
i = 0



while i < 365:
    if cal[i] > 0:
        width = 0
        height = 0


        while i < 365 and cal[i] > 0:
            width += 1
            height = max(height, cal[i])
            i += 1
        result += width * height
    else:

        i += 1



print(result)
31
  1. ์ผ์ • ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ : cal์— ๋‹จ์ˆœ + ํ•ด์ฃผ๋Š” ๊ณผ์ •

  2. ์ฝ”ํŒ… ๋ฉด์  ๊ณ„์‚ฐ : 365๋ฅผ ๋Œ๋ฉด์„œ ์•ˆ์—์„œ while๋ฌธ์œผ๋กœ ํ•œ๋ฒˆ ๋” ๋ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  cal[i]๊ฐ€ 0 ์ธ ๊ฒฝ์šฐ์— out๋˜๋ฉด์„œ result += ๋ฅผ ํ•œ๋‹ค.

  3. ๋ฉด์  ํ•ฉ์‚ฐ : ์ด๋ฏธ while ๋ฌธ์„ ๋‹ค๋Œ๋ฉด ๊ณ„์‚ฐ์ด ๋‹ค ๋˜์–ด์žˆ๋‹ค.

๋‚˜์˜ ์ดˆ๋ฐ˜์˜ ์ฝ”๋“œ๋Š” ์ค‘๊ฐ„์— ๊ฒน์น˜์ง€ ์•Š๋Š” ์ผ์ •๋“ค์ด ์žˆ์„ ๊ฒฝ์šฐ, ๋ฉด์  ๊ณ„์‚ฐ์„ ๋ˆ„๋ฝํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋‹จ์ ์ด ์กด์žฌํ•œ๋‹ค.