MUKER_DEV with iOS

[swift] ๋ฐฑ์ค€ - 2852๋ฒˆ: NBA ๋†๊ตฌ ๋ณธ๋ฌธ

๐Ÿค– ์•Œ๊ณ ๋ฆฌ์ฆ˜/BAEKJOON

[swift] ๋ฐฑ์ค€ - 2852๋ฒˆ: NBA ๋†๊ตฌ

MUKER 2023. 7. 26. 11:28
๋ฌธ์ œ ๋งํฌ
 

2852๋ฒˆ: NBA ๋†๊ตฌ

์ฒซ์งธ ์ค„์— ๊ณจ์ด ๋“ค์–ด๊ฐ„ ํšŸ์ˆ˜ N(1<=N<=100)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ๋“์  ์ •๋ณด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋“์  ์ •๋ณด๋Š” ๋“์ ํ•œ ํŒ€์˜ ๋ฒˆํ˜ธ์™€ ๋“์ ํ•œ ์‹œ๊ฐ„์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ํŒ€ ๋ฒˆํ˜ธ๋Š” 1 ๋˜๋Š” 2์ด๋‹ค. ๋“

www.acmicpc.net


๋ฌธ์ œ

๋™ํ˜์ด๋Š” NBA ๋†๊ตฌ ๊ฒฝ๊ธฐ๋ฅผ ์ฆ๊ฒจ ๋ณธ๋‹ค. ๋™ํ˜์ด๋Š” ๊ณจ์ด ๋“ค์–ด๊ฐˆ ๋•Œ ๋งˆ๋‹ค ๊ณจ์ด ๋“ค์–ด๊ฐ„ ์‹œ๊ฐ„๊ณผ ํŒ€์„ ์ ๋Š” ์ด์ƒํ•œ ์ทจ๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

๋†๊ตฌ ๊ฒฝ๊ธฐ๋Š” ์ •ํ™•ํžˆ 48๋ถ„๋™์•ˆ ์ง„ํ–‰๋œ๋‹ค. ๊ฐ ํŒ€์ด ๋ช‡ ๋ถ„๋™์•ˆ ์ด๊ธฐ๊ณ  ์žˆ์—ˆ๋Š”์ง€ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ๊ณจ์ด ๋“ค์–ด๊ฐ„ ํšŸ์ˆ˜ N(1<=N<=100)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ๋“์  ์ •๋ณด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋“์  ์ •๋ณด๋Š” ๋“์ ํ•œ ํŒ€์˜ ๋ฒˆํ˜ธ์™€ ๋“์ ํ•œ ์‹œ๊ฐ„์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ํŒ€ ๋ฒˆํ˜ธ๋Š” 1 ๋˜๋Š” 2์ด๋‹ค. ๋“์ ํ•œ ์‹œ๊ฐ„์€ MM:SS(๋ถ„:์ดˆ) ํ˜•์‹์ด๋ฉฐ, ๋ถ„๊ณผ ์ดˆ๊ฐ€ ํ•œ์ž๋ฆฌ ์ผ ๊ฒฝ์šฐ ์ฒซ์งธ์ž๋ฆฌ๊ฐ€ 0์ด๋‹ค. ๋ถ„์€ 0๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 47๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์œผ๋ฉฐ, ์ดˆ๋Š” 0๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 59๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค. ๋“์  ์‹œ๊ฐ„์ด ๊ฒน์น˜๋Š” ๊ฒฝ์šฐ๋Š” ์—†๋‹ค.

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— 1๋ฒˆ ํŒ€์ด ์ด๊ธฐ๊ณ  ์žˆ๋˜ ์‹œ๊ฐ„, ๋‘˜์งธ ์ค„์— 2๋ฒˆ ํŒ€์ด ์ด๊ธฐ๊ณ  ์žˆ๋˜ ์‹œ๊ฐ„์„ ์ถœ๋ ฅํ•œ๋‹ค. ์‹œ๊ฐ„์€ ์ž…๋ ฅ๊ณผ ๊ฐ™์€ ํ˜•์‹(MM:SS)์œผ๋กœ ์ถœ๋ ฅํ•œ๋‹ค.

์˜ˆ์ œ


์„ฑ๊ณต ํ’€์ด

import Foundation

let N = Int(readLine()!)!
var score = [0,0], time = [0,0], current = 0
for _ in 0..<N {
    let input = readLine()!.split {$0 == " "}
    let inputGoal = input[1].split {$0 == ":"}.map {Int($0)!}
    let goal = inputGoal[0]*60 + inputGoal[1]
    
    if score[0] > score[1] { time[0] += goal-current }
    else if score[1] > score[0] { time[1] += goal-current }
    
    score[Int(input[0])!-1] += 1
    current = goal
}
// ๋งˆ์ง€๋ง‰๊ณจ๋ถ€ํ„ฐ 48๋ถ„๊นŒ์ง€ ๊ณ„์‚ฐ
if score[0] > score[1] { time[0] += 48*60-current }
else if score[1] > score[0] { time[1] += 48*60-current }

print("\(String(format: "%02d", time[0]/60)):\(String(format: "%02d", time[0]%60))")
print("\(String(format: "%02d", time[1]/60)):\(String(format: "%02d", time[1]%60))")

ํ’€์ด ํ‚ค์›Œ๋“œ

  • ๊ณจ์„ ๋„ฃ์—ˆ์„ ๋•Œ๋ฅผ ๋ถ„๊ธฐ๋กœ ์Šค์ฝ”์–ด๊ฐ€ ์•ž์„œ๊ณ  ์žˆ๋Š” ํŒ€์— ์ด๊ธฐ๊ณ  ์žˆ๋˜ ์‹œ๊ฐ„ = (์ง€๊ธˆ ๊ณจ ๋„ฃ์€ ์‹œ๊ฐ„ - ์ตœ๊ทผ ๊ณจ ๋„ฃ์€ ์‹œ๊ฐ„) ์„ ๋”ํ•ด์ค๋‹ˆ๋‹ค.
  • ๋งˆ์ง€๋ง‰๊ณจ๋กœ ๋ถ€ํ„ฐ 48๋ถ„๊นŒ์ง€์˜ ์ด๊ธฐ๊ณ  ์žˆ๋˜ ์‹œ๊ฐ„์€ ์•ˆ ๊ตฌํ•ด์กŒ๊ธฐ ๋•Œ๋ฌธ์— ๋”ฐ๋กœ ํ•œ๋ฒˆ ๋” ๊ตฌํ•ด์คฌ์Šต๋‹ˆ๋‹ค.