ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python] ๋ฐฑ์ค€ 2594 ๋†€์ด๊ณต์› (๊ตฌํ˜„)
    ๐Ÿ’ป Algorithm/Python 2022. 7. 2. 15:23

     

    ๐Ÿ“Œ ๋ฌธ์ œ

    ๋†€์ด๊ณต์›์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋†€์ด๊ธฐ๊ตฌ๋ฅผ ๋งก์•„ ์ผํ•˜๋Š” ์„ธํ˜์ด์™€ ๊ทผ์˜์ด๋Š” ์„œ๋กœ ์ข‹์•„ํ•˜๋Š” ์‚ฌ์ด์ด๋‹ค. ๊ทธ๋“ค์€ ์‰ฌ๋Š” ์‹œ๊ฐ„์„ ์ด์šฉํ•˜์—ฌ ๋‘˜๋งŒ์˜ ์‹œ๊ฐ„์„ ๊ฐ€์ง€๊ธฐ๋ฅผ ์›ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๋งค์ผ ์ผ๊ณผ ์‹œ์ž‘ ์ „์— ๋†€์ด๊ธฐ๊ตฌ์˜ ์šด์˜ ์ผ์ •์„ ๋ณด๊ณ , ๊ทธ๋‚  ๋‘˜์ด ํ•จ๊ป˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ๊ธด ํœด์‹์‹œ๊ฐ„์ด ์–ธ์ œ์ธ์ง€๋ฅผ ์ฐพ์œผ๋ ค๊ณ  ํ•œ๋‹ค.

     

    ๋†€์ด๊ณต์›์—์„œ ์ผํ•˜๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์€ ์–ด๋–ค ๋†€์ด๊ธฐ๊ตฌ๊ฐ€ ์ž‘๋™์„ ์‹œ์ž‘ํ•˜๊ธฐ 10๋ถ„ ์ „๋ถ€ํ„ฐ, ๋ชจ๋“  ๋†€์ด๊ธฐ๊ตฌ๊ฐ€ ์ž‘๋™์„ ๋ฉˆ์ถ˜ ํ›„ 10๋ถ„ ํ›„๊นŒ์ง€๋Š” ์‰ด ์ˆ˜ ์—†๊ณ , ๊ทธ ๋‚˜๋จธ์ง€ ์ผ๊ณผ ์‹œ๊ฐ„์—๋งŒ ์‰ด ์ˆ˜ ์žˆ๋‹ค.

     

    ํ•˜๋ฃจ ์ผ๊ณผ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ์‹œ๊ฐ์€ ์˜ค์ „ 10์‹œ์ด๊ณ , ์ผ๊ณผ๋ฅผ ๋งˆ์น˜๋Š” ์‹œ๊ฐ์€ ์˜คํ›„ 10์‹œ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์„ธ ๊ฐœ์˜ ๋†€์ด๊ธฐ๊ตฌ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ์‹œ๊ฐ„์ด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค๊ณ  ํ•˜๋ฉด,

     

    ๋†€์ด๊ธฐ๊ตฌ 1: ์˜ค์ „ 10์‹œ 30๋ถ„ - ์˜คํ›„ 1์‹œ
    ๋†€์ด๊ธฐ๊ตฌ 2: ์˜คํ›„ 7์‹œ 00๋ถ„ - ์˜คํ›„ 9์‹œ 10๋ถ„
    ๋†€์ด๊ธฐ๊ตฌ 3: ์˜คํ›„ 12์‹œ 30๋ถ„ - ์˜คํ›„ 4์‹œ 50๋ถ„


    ์„ธํ˜์ด์™€ ๊ทผ์˜์ด๋Š” ๋†€์ด๊ธฐ๊ตฌ 1์ด ์šดํ–‰๋˜๊ธฐ ์ „์— 20๋ถ„, ๋†€์ด๊ธฐ๊ตฌ 3์˜ ์šดํ–‰์ด ๋๋‚˜๊ณ  ๋†€์ด๊ธฐ๊ตฌ 2์˜ ์šดํ–‰์‹œ์ž‘ ์ „ ์‚ฌ์ด์— 1์‹œ๊ฐ„ 50๋ถ„, ๋†€์ด๊ธฐ๊ตฌ 2์˜ ์šดํ–‰์ด ๋๋‚œ ํ›„์— 40๋ถ„ ๋™์•ˆ ์‰ด ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‘˜์ด ํ•จ๊ป˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ๊ธด ์‹œ๊ฐ„์€ 1์‹œ๊ฐ„ 50๋ถ„์ด๋‹ค.

    ๋†€์ด๊ธฐ๊ตฌ ์šด์˜ ์ผ์ •์ด ์ฃผ์–ด์งˆ ๋•Œ, ๊ทธ ๋‚  ์„ธํ˜์ด์™€ ๊ทผ์˜์ด๊ฐ€ ํ•จ๊ป˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ๊ธด ์‹œ๊ฐ„์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

    ์ž…๋ ฅ

    ์ฒซ์งธ ์ค„์— ๋†€์ด๊ธฐ๊ตฌ์˜ ๊ฐœ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. ์ด์–ด N์ค„์— ๊ฑธ์ณ ๊ฐ ๋†€์ด๊ธฐ๊ตฌ์˜ ์šดํ–‰์‹œ์ž‘ ์‹œ๊ฐ๊ณผ ์ข…๋ฃŒ ์‹œ๊ฐ์ด ๋นˆ ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฃผ์–ด์ง„๋‹ค. ์‹œ๊ฐ์€ ์‹œ๊ฐ„๋‹จ์œ„ ๋‘ ์ž๋ฆฌ, ๋ถ„ ๋‹จ์œ„ ๋‘ ์ž๋ฆฌ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ ์˜คํ›„ 1์‹œ๋Š” 13์‹œ, ์˜คํ›„ 2์‹œ๋Š” 14์‹œ, ... , ์˜คํ›„ 10์‹œ๋Š” 22์‹œ๋กœ ํ‘œํ˜„๋œ๋‹ค. N์€ 50์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋‹ค.

    ์ถœ๋ ฅ

    ์ฒซ์งธ ์ค„์— ์„ธํ˜์ด์™€ ๊ทผ์˜์ด๊ฐ€ ํ•จ๊ป˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ๊ธด ์‹œ๊ฐ„์„ ๋ถ„ ๋‹จ์œ„๋กœ ์ถœ๋ ฅํ•œ๋‹ค. ๋งŒ์•ฝ ํ•จ๊ป˜ํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„์ด ์—†๋‹ค๋ฉด ์ฒซ์งธ ์ค„์— 0์„ ์ถœ๋ ฅํ•œ๋‹ค.

    ์˜ˆ์ œ ์ž…๋ ฅ 1

    3
    1030 1300
    1900 2110
    1230 1650

    ์˜ˆ์ œ ์ถœ๋ ฅ 1

    110

     


     

    ๐Ÿ“Œ ํ’€์ด

    import sys
    input = sys.stdin.readline
    
    ride = [[600, 600], [1320, 1320]]
    for _ in range(int(input())):
        x, y = input().split()
        x = int(x[:2]) * 60 + int(x[2:]) - 10
        y = int(y[:2]) * 60 + int(y[2:]) + 10
        ride.append([x, y])
    ride.sort()
    
    rest = 0
    last = 600
    
    for run, stop in ride:
        rest = max(rest, run - last)
        last = max(last, stop)
    
    print(rest)

     

    ์‹œ๊ฐ ํ‘œํ˜„ ๋ณ€ํ™˜

    10์‹œ 30๋ถ„์€ 1030, 21์‹œ 10๋ถ„์€ 2110 ์ด๋Ÿฐ ์‹์œผ๋กœ ์ž…๋ ฅ์ด ๋“ค์–ด์˜ค๊ณ , ๊ฐ€์žฅ ๊ธด ํœด์‹์‹œ๊ฐ„์„ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ๋Š” ์‹œ๊ฐ๋ผ๋ฆฌ ๋บ„์…ˆ์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ณ„์‚ฐํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋ฐ”๊ฟ”์ฃผ๋Š” ๊ฒŒ ์ข‹์Šต๋‹ˆ๋‹ค.

    0์‹œ 0๋ถ„์„ 0์œผ๋กœ ์žก๊ณ 
    10์‹œ 30๋ถ„ → 10*60+30=630
    22์‹œ 00๋ถ„ → 22*60 = 1320
    ์š”๋Ÿฐ ์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š”๋ฐ, ๋ฐฉ๋ฒ•์€ ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

    # ์ •์งํ•˜๊ฒŒ ๊ณ„์‚ฐ
    (int('1030') // 100) * 60 + int('1030') % 100
    # ์Šฌ๋ผ์ด์‹ฑ ์ด์šฉ
    int('1030'[:2]) * 60 + int('1030'[2:])

    ์ €๋Š” ์ •์งํ•œ ๊ณ„์‚ฐ๋ฒ•์œผ๋กœ ํ’€์—ˆ๋Š”๋ฐ, ํ’€๊ณ  ๋‚˜์„œ ๋‹ค๋ฅธ ๋ถ„๋“ค ํ’€์ด ๊ตฌ๊ฒฝํ•˜๋‹ค๊ฐ€ ์ƒˆ๋กœ์šด ๋ฐฉ๋ฒ•์ด ์žˆ์–ด ๊ทธ ๋ฐฉ๋ฒ•์œผ๋กœ ํฌ์ŠคํŒ…ํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

    ๋†€์ด๊ธฐ๊ตฌ ์šด์˜ ์ „ํ›„๋กœ 10๋ถ„์˜ ์ค€๋น„์‹œ๊ฐ„์ด ์žˆ์œผ๋ฏ€๋กœ ์‹œ์ž‘์‹œ๊ฐ„์—์„œ -10, ์ข…๋ฃŒ์‹œ๊ฐ„์—์„œ +10๊นŒ์ง€ ํ•ด์ฃผ๋ฉด ์‹œ๊ฐ ๋ณ€ํ™˜์€ ๋์ž…๋‹ˆ๋‹ค.

     

    ์ตœ๋Œ€ ํœด์‹์‹œ๊ฐ„ ๊ณ„์‚ฐ ๊ณผ์ •

    1. ์ผ๊ณผ ์‹œ์ž‘, ์ข…๋ฃŒ์‹œ๊ฐ„์ธ 10์‹œ์™€ 22์‹œ๋ฅผ ๊ฐ๊ฐ [600, 600], [1320, 1320]์œผ๋กœ ๋ฐฐ์—ด์— ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค.
    2. ๋†€์ด๊ธฐ๊ตฌ์˜ ์‹œ์ž‘์‹œ๊ฐ„์„ ๊ธฐ์ค€์œผ๋กœ ๋ฐฐ์—ด์„ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค.
    3. rest: ์ตœ๋Œ€ ํœด์‹์‹œ๊ฐ„ (0์œผ๋กœ ์ดˆ๊ธฐํ™”)
      last: ์•ž์„  ๋†€์ด๊ธฐ๊ตฌ ์ค‘ ๊ฐ€์žฅ ๋Šฆ๊ฒŒ ๋๋‚˜๋Š” ๊ฒƒ์˜ ์ข…๋ฃŒ์‹œ๊ฐ„
      run: i๋ฒˆ์งธ ๋†€์ด๊ธฐ๊ตฌ์˜ ์‹œ์ž‘์‹œ๊ฐ„
      stop: i๋ฒˆ์งธ ๋†€์ด๊ธฐ๊ตฌ์˜ ์ข…๋ฃŒ์‹œ๊ฐ„
    4. run๊ณผ last๋ฅผ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.
      (1) run<last: ํœด์‹์‹œ๊ฐ„์ด ์—†๋Š” ๊ฒƒ์ด๋ฏ€๋กœ last์™€ stop์„ ๋น„๊ตํ•ด์„œ ๋” ๋Šฆ๊ฒŒ ๋๋‚˜๋Š” ๋†€์ด๊ธฐ๊ตฌ์˜ ์ข…๋ฃŒ์‹œ๊ฐ„์„ last๋กœ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.
      (2) run>last: ํœด์‹์‹œ๊ฐ„์ด ์žˆ๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ํ˜„์žฌ ์ตœ๋Œ€ ํœด์‹์‹œ๊ฐ„์ธ rest์™€ ์ƒˆ๋กœ์šด ํœด์‹์‹œ๊ฐ„์ธ run-last๋ฅผ ๋น„๊ตํ•ด์„œ ๋” ํฐ ๊ฐ’์œผ๋กœ rest๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. last๋„ (1)๊ณผ ๊ฐ™์ด ๋น„๊ตํ•ด ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

    ๋Œ“๊ธ€

Designed by Tistory.