[백준] 20546 - Swift

이창형·2023년 5월 22일
0

https://www.acmicpc.net/problem/20546
문제가 길어서 문제링크!

코드


let input = Int(readLine()!)!

let price = readLine()!.split(separator: " ").map{Int(String($0))!}
var jun = input
var junCount = 0
var sung = input
var sungCount = 0
var downCount = 0
var upCount = 0
var last = 0

for i in 0..<price.count {
    if jun >= price[i] {
        junCount += (jun/price[i])
        jun -= (price[i] * (jun/price[i]))
    }
    if i != 0 {
        if price[i-1] > price[i] {
            downCount += 1
            upCount = 0
        } else if price[i-1] < price[i] {
            upCount += 1
            downCount = 0
        } else {
            upCount = 0
            downCount = 0
        }
    }
    if downCount == 3 {
        sungCount += (sung/price[i])
        sung -= (price[i] * (sung/price[i]))
        downCount = 0
    } else if upCount == 3 {
        sung += (sungCount * price[i])
        sungCount = 0
        upCount = 0
    }
}

sung += (sungCount * price.last!)
jun += (junCount * price.last!)

if sung == jun {
    print("SAMESAME")
} else {
    print(sung > jun ? "TIMING" : "BNP")
}

회고

  • 단순 구현문제였다
  • 머리가 좀 복잡했지만 그냥 써내려가니 풀렸다
  • 구현문제를 집중적으로 풀어 볼 생각이다
  • 차근차근 골드로 가보자!
profile
iOS Developer

0개의 댓글