๊ฐœ๋ฐœ์ž HOON
๐Ÿ› HOON DEVLog
๊ฐœ๋ฐœ์ž HOON
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๐Ÿ˜Ž ์ „์ฒด ์นดํ…Œ๊ณ ๋ฆฌ (137)
    • ๐Ÿ“ ์‹ ์ž… ์ธํ„ฐ๋ทฐ ์ค€๋น„ (7)
    • ๐Ÿฆ” ์ทจ์—…์ค€๋น„ ๊ธฐ๋ก (7)
    • โ˜• ์ž๋ฐ” : JAVA (5)
    • ๐Ÿ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋Œ€๋น„ : PS (80)
    • ๐ŸŒฑ ๋ฐฑ์—”๋“œ : Backend (13)
    • ๐Ÿงช ์ปดํ“จํ„ฐ๊ณผํ•™ : CS (11)
    • ๐Ÿ—‚ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค : DB (1)
    • ๐Ÿƒ‍โ™‚๏ธ DEVLOG (8)
    • โš™๏ธ Trouble Shooting (5)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • GitHub
  • Resume

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
๊ฐœ๋ฐœ์ž HOON

๐Ÿ› HOON DEVLog

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ฃผ์ฐจ ์š”๊ธˆ ๊ณ„์‚ฐ (level2, python)
๐Ÿ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋Œ€๋น„ : PS

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ฃผ์ฐจ ์š”๊ธˆ ๊ณ„์‚ฐ (level2, python)

2022. 9. 12. 17:46

๋ฌธ์ œ ์„ค๋ช…

 

์ฃผ์ฐจ์žฅ์˜ ์š”๊ธˆํ‘œ์™€ ์ฐจ๋Ÿ‰์ด ๋“ค์–ด์˜ค๊ณ (์ž…์ฐจ) ๋‚˜๊ฐ„(์ถœ์ฐจ) ๊ธฐ๋ก์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ฐจ๋Ÿ‰๋ณ„๋กœ ์ฃผ์ฐจ ์š”๊ธˆ์„ ๊ณ„์‚ฐํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ํ•˜๋‚˜์˜ ์˜ˆ์‹œ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

 

  • ์š”๊ธˆํ‘œ

 

  • ์ž…/์ถœ์ฐจ ๊ธฐ๋ก

 

  • ์ž๋™์ฐจ๋ณ„ ์ฃผ์ฐจ ์š”๊ธˆ

 

  • ์–ด๋–ค ์ฐจ๋Ÿ‰์ด ์ž…์ฐจ๋œ ํ›„์— ์ถœ์ฐจ๋œ ๋‚ด์—ญ์ด ์—†๋‹ค๋ฉด, 23:59์— ์ถœ์ฐจ๋œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค.
    • 0000๋ฒˆ ์ฐจ๋Ÿ‰์€ 18:59์— ์ž…์ฐจ๋œ ์ดํ›„, ์ถœ์ฐจ๋œ ๋‚ด์—ญ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, 23:59์— ์ถœ์ฐจ๋œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค.
  • 00:00๋ถ€ํ„ฐ 23:59๊นŒ์ง€์˜ ์ž…/์ถœ์ฐจ ๋‚ด์—ญ์„ ๋ฐ”ํƒ•์œผ๋กœ ์ฐจ๋Ÿ‰๋ณ„ ๋ˆ„์  ์ฃผ์ฐจ ์‹œ๊ฐ„์„ ๊ณ„์‚ฐํ•˜์—ฌ ์š”๊ธˆ์„ ์ผ๊ด„๋กœ ์ •์‚ฐํ•ฉ๋‹ˆ๋‹ค.
  • ๋ˆ„์  ์ฃผ์ฐจ ์‹œ๊ฐ„์ด ๊ธฐ๋ณธ ์‹œ๊ฐ„์ดํ•˜๋ผ๋ฉด, ๊ธฐ๋ณธ ์š”๊ธˆ์„ ์ฒญ๊ตฌํ•ฉ๋‹ˆ๋‹ค.
  • ๋ˆ„์  ์ฃผ์ฐจ ์‹œ๊ฐ„์ด ๊ธฐ๋ณธ ์‹œ๊ฐ„์„ ์ดˆ๊ณผํ•˜๋ฉด, ๊ธฐ๋ณธ ์š”๊ธˆ์— ๋”ํ•ด์„œ, ์ดˆ๊ณผํ•œ ์‹œ๊ฐ„์— ๋Œ€ํ•ด์„œ ๋‹จ์œ„ ์‹œ๊ฐ„ ๋งˆ๋‹ค ๋‹จ์œ„ ์š”๊ธˆ์„ ์ฒญ๊ตฌํ•ฉ๋‹ˆ๋‹ค.
    • ์ดˆ๊ณผํ•œ ์‹œ๊ฐ„์ด ๋‹จ์œ„ ์‹œ๊ฐ„์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€์ง€ ์•Š์œผ๋ฉด, ์˜ฌ๋ฆผํ•ฉ๋‹ˆ๋‹ค.
    • ⌈a⌉ : a๋ณด๋‹ค ์ž‘์ง€ ์•Š์€ ์ตœ์†Œ์˜ ์ •์ˆ˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์˜ฌ๋ฆผ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

 

์ฃผ์ฐจ ์š”๊ธˆ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ ๋ฐฐ์—ด fees, ์ž๋™์ฐจ์˜ ์ž…/์ถœ์ฐจ ๋‚ด์—ญ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฌธ์ž์—ด ๋ฐฐ์—ด records๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ์ฐจ๋Ÿ‰ ๋ฒˆํ˜ธ๊ฐ€ ์ž‘์€ ์ž๋™์ฐจ๋ถ€ํ„ฐ ์ฒญ๊ตฌํ•  ์ฃผ์ฐจ ์š”๊ธˆ์„ ์ฐจ๋ก€๋Œ€๋กœ ์ •์ˆ˜ ๋ฐฐ์—ด์— ๋‹ด์•„์„œ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.


์ œํ•œ์‚ฌํ•ญ

  • fees์˜ ๊ธธ์ด = 4
    • fees[0] = ๊ธฐ๋ณธ ์‹œ๊ฐ„(๋ถ„)
    • 1 ≤ fees[0] ≤ 1,439
    • fees[1] = ๊ธฐ๋ณธ ์š”๊ธˆ(์›)
    • 0 ≤ fees[1] ≤ 100,000
    • fees[2] = ๋‹จ์œ„ ์‹œ๊ฐ„(๋ถ„)
    • 1 ≤ fees[2] ≤ 1,439
    • fees[3] = ๋‹จ์œ„ ์š”๊ธˆ(์›)
    • 1 ≤ fees[3] ≤ 10,000
  • 1 ≤ records์˜ ๊ธธ์ด ≤ 1,000
    • records์˜ ๊ฐ ์›์†Œ๋Š” "์‹œ๊ฐ ์ฐจ๋Ÿ‰๋ฒˆํ˜ธ ๋‚ด์—ญ" ํ˜•์‹์˜ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.
    • ์‹œ๊ฐ, ์ฐจ๋Ÿ‰๋ฒˆํ˜ธ, ๋‚ด์—ญ์€ ํ•˜๋‚˜์˜ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์‹œ๊ฐ์€ ์ฐจ๋Ÿ‰์ด ์ž…์ฐจ๋˜๊ฑฐ๋‚˜ ์ถœ์ฐจ๋œ ์‹œ๊ฐ์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ, HH:MM ํ˜•์‹์˜ ๊ธธ์ด 5์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.
      • HH:MM์€ 00:00๋ถ€ํ„ฐ 23:59๊นŒ์ง€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.
      • ์ž˜๋ชป๋œ ์‹œ๊ฐ("25:22", "09:65" ๋“ฑ)์€ ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    • ์ฐจ๋Ÿ‰๋ฒˆํ˜ธ๋Š” ์ž๋™์ฐจ๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•œ, `0'~'9'๋กœ ๊ตฌ์„ฑ๋œ ๊ธธ์ด 4์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.
    • ๋‚ด์—ญ์€ ๊ธธ์ด 2 ๋˜๋Š” 3์ธ ๋ฌธ์ž์—ด๋กœ, IN ๋˜๋Š” OUT์ž…๋‹ˆ๋‹ค. IN์€ ์ž…์ฐจ๋ฅผ, OUT์€ ์ถœ์ฐจ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
    • records์˜ ์›์†Œ๋“ค์€ ์‹œ๊ฐ์„ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜์–ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.
    • records๋Š” ํ•˜๋ฃจ ๋™์•ˆ์˜ ์ž…/์ถœ์ฐจ๋œ ๊ธฐ๋ก๋งŒ ๋‹ด๊ณ  ์žˆ์œผ๋ฉฐ, ์ž…์ฐจ๋œ ์ฐจ๋Ÿ‰์ด ๋‹ค์Œ๋‚  ์ถœ์ฐจ๋˜๋Š” ๊ฒฝ์šฐ๋Š” ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    • ๊ฐ™์€ ์‹œ๊ฐ์—, ๊ฐ™์€ ์ฐจ๋Ÿ‰๋ฒˆํ˜ธ์˜ ๋‚ด์—ญ์ด 2๋ฒˆ ์ด์ƒ ๋‚˜ํƒ€๋‚ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    • ๋งˆ์ง€๋ง‰ ์‹œ๊ฐ(23:59)์— ์ž…์ฐจ๋˜๋Š” ๊ฒฝ์šฐ๋Š” ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    • ์•„๋ž˜์˜ ์˜ˆ๋ฅผ ํฌํ•จํ•˜์—ฌ, ์ž˜๋ชป๋œ ์ž…๋ ฅ์€ ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
      • ์ฃผ์ฐจ์žฅ์— ์—†๋Š” ์ฐจ๋Ÿ‰์ด ์ถœ์ฐจ๋˜๋Š” ๊ฒฝ์šฐ
      • ์ฃผ์ฐจ์žฅ์— ์ด๋ฏธ ์žˆ๋Š” ์ฐจ๋Ÿ‰(์ฐจ๋Ÿ‰๋ฒˆํ˜ธ๊ฐ€ ๊ฐ™์€ ์ฐจ๋Ÿ‰)์ด ๋‹ค์‹œ ์ž…์ฐจ๋˜๋Š” ๊ฒฝ์šฐ

์ž…์ถœ๋ ฅ ์˜ˆ

 


์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

 

์ž…์ถœ๋ ฅ ์˜ˆ #1

๋ฌธ์ œ ์˜ˆ์‹œ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • ์š”๊ธˆํ‘œ

 

  • ์ž…/์ถœ์ฐจ ๊ธฐ๋ก

 

  • ์ž๋™์ฐจ๋ณ„ ์ฃผ์ฐจ ์š”๊ธˆ

  • 3961๋ฒˆ ์ฐจ๋Ÿ‰์€ 2๋ฒˆ์งธ ์ž…์ฐจ๋œ ํ›„์—๋Š” ์ถœ์ฐจ๋œ ๋‚ด์—ญ์ด ์—†์œผ๋ฏ€๋กœ, 23:59์— ์ถœ์ฐจ๋˜์—ˆ๋‹ค๊ณ  ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค.

 

์ž…์ถœ๋ ฅ ์˜ˆ #3

  • ์š”๊ธˆํ‘œ

 

  • ์ž…/์ถœ์ฐจ ๊ธฐ๋ก

 

  • ์ž๋™์ฐจ๋ณ„ ์ฃผ์ฐจ ์š”๊ธˆ

  • 1234๋ฒˆ ์ฐจ๋Ÿ‰์€ ์ถœ์ฐจ ๋‚ด์—ญ์ด ์—†์œผ๋ฏ€๋กœ, 23:59์— ์ถœ์ฐจ๋˜์—ˆ๋‹ค๊ณ  ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค.

ํ’€์ด ์ฝ”๋“œ

import math

def convert_time_to_minute(intime, outtime):
    inhour, inminute = map(int, intime.split(':'))
    outhour, outminute = map(int, outtime.split(':'))
    
    return (outhour * 60 + outminute) - (inhour * 60 + inminute)

def solution(fees, records):
    base_time, base_fee, unit_time, unit_fee = fees
    hash = {}
    for record in records:
        time, car_num, whether = record.split()
        if whether == 'IN':
            if car_num not in hash:
                hash[car_num] = [time, 0, True]
            else:
                hash[car_num][0] = time
                hash[car_num][2] = True
        else:
            in_time = hash[car_num][0]
            minute = convert_time_to_minute(in_time, time)
            hash[car_num][1] += minute
            hash[car_num][2] = False
            hash[car_num][0] = ''
    
    for key in hash:
        if hash[key][2]:
            minute = convert_time_to_minute(hash[key][0], '23:59')
            hash[key][1] += minute
            hash[key][2] = False
        
        if hash[key][1] <= base_time:
            hash[key][1] = base_fee
        else:
            hash[key][1] = base_fee + math.ceil((hash[key][1] - base_time) / unit_time) * unit_fee
    
    answer = [item[1][1] for item in sorted(hash.items())]

    return answer

๋”•์…”๋„ˆ๋ฆฌ(ํ•ด์‹œ)์™€ ๊ตฌํ˜„๋ฌธ์ œ์— ํ•ด๋‹นํ•œ๋‹ค.

์ฝ”๋“œ๊ฐ€ ์กฐ๊ธˆ ๊ธธ๊ณ  ๋‚œ์žกํ•ด ๋ณด์ผ ๋ฟ์ด์ง€, ์‹ค์ƒ ๋œฏ์–ด๋ณด๋ฉด ๋ณ„ ๊ฒƒ ์—†๋Š” ๋ฌธ์ œ์ด๋‹ค.

 

์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋™์ผ์กฐ๊ฑด (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋Œ€๋น„ : PS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋„คํŠธ์›Œํฌ (level3, python)  (0) 2022.09.12
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก (level2, python)  (0) 2022.09.12
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํ”„๋ฆฐํ„ฐ (level2, python)  (0) 2022.09.12
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] [1์ฐจ] ๋‰ด์Šค ํด๋Ÿฌ์Šคํ„ฐ๋ง (level2, python)  (0) 2022.09.12
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] k์ง„์ˆ˜์—์„œ ์†Œ์ˆ˜ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ (level2, python)  (0) 2022.09.12
    '๐Ÿ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋Œ€๋น„ : PS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋„คํŠธ์›Œํฌ (level3, python)
    • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก (level2, python)
    • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํ”„๋ฆฐํ„ฐ (level2, python)
    • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] [1์ฐจ] ๋‰ด์Šค ํด๋Ÿฌ์Šคํ„ฐ๋ง (level2, python)
    ๊ฐœ๋ฐœ์ž HOON
    ๊ฐœ๋ฐœ์ž HOON
    ์ข‹์€ ๋ฐฑ์—”๋“œ ์—”์ง€๋‹ˆ์–ด๊ฐ€ ๋˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ก์„ ๋ชจ์•˜์Šต๋‹ˆ๋‹ค. # ์ฃผ๋‹ˆ์–ด # ๋ฐฑ์—”๋“œ # ๊ฐœ๋ฐœ์ž

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”