Algorithm/Baekjoon
[๋ฐฑ์ค] (Swift) 20546๋ฒ - ๊ธฐ์ ์ ๋งค๋ฏธ๋ฒ (๊ตฌํ)
๊ฐ์ ๐ฅ
2023. 2. 15. 23:28
๋ฐ์ํ
๐ ๋ฌธ์
๐ ๋์ ํ์ด
๋ฌธ์ ๋ ๋๊ฒ ์ผ๋ฆฌ์ผ๋ฆฌ ํ์ง๋ง, ์ค๋ฒ 5๋ฐ์ ๋์ง ์๋ ๊ทธ๋ฅ ๊ตฌํ ๋ฌธ์ !
์กฐ๊ฑด๋ง ์ ๋ฐ๋ผ์ ์ฝ๋๋ก ๊ตฌํํด์ฃผ๋ฉด ๋์ด๋ค.
๊ทผ๋ฐ ์ ํ๋ ธ๋๊ณ ? ๋์ด๋ ๋ฎ์ ๋ฌธ์ ํ๋ฆฌ๋ฉด ์ค์ผ ํ๊ฐ๋ ๊น ใ ใ ํํํํ
์์ ํ์ฐฝ์์ ์๋ ๋ฌธ์ ๋ฅผ ์ ๋๋ก ์ฝ์ง ์์์ '์์'๊ฒ์ ๊ณ ๋ฅด๋ผ๊ณ ํ๋๋ฐ ์ณ์ ๊ฒ์ ๊ณ ๋ฅด๊ณค ํ๋ค. ๊ทผ๋ฐ,,, ์ง๊ธ๋ ๋จ์ํ ์์ ์์ BNP ์๋๋ฉด TIMING๋ง ์ฃผ์ด์ก๋ค๊ณ ๊ฐ์๊ฒฝ์ฐ์ ์กฐ๊ฑด์ ์ฒ๋ฆฌํด์ฃผ์ง ์์๋ฐ ํํํํํํํ
๋ถ๋ช ์ด๋ ๊ฒ ์ถ๋ ฅํ๋ผ๊ณ ํ๋๋ฐ ๋ง์ด๋ค ^0^/ ๐ถ ์ธ๋ฒ๋ง์ ๋ฐ๊ฒฌํ๊ณ , ์กฐ๊ฑด์ฒ๋ฆฌํด์ค์ ํต๊ณผ......ํ๋ค.....
โจ ๊ฒฐ๋ก !! ๋ฌธ์ ๋ฅผ ์์ฝ๊ณ , ๋ฌธ์ ์กฐ๊ฑด ๋ฐ ์ถ๋ ฅ์กฐ๊ฑด์ ํญ์ ํ์ธํ์
๐ ์ ๋ต์ฝ๋
import Foundation
let money = Int(readLine()!)!
let arr = [-1] + readLine()!.split(separator: " ").map{ Int($0)! }
private func bnp(_ money: Int) -> Int {
var cash = money
var cnt = 0
for i in 1..<arr.count {
if cash >= arr[i] {
cnt += cash / arr[i]
cash -= (cash / arr[i]) * arr[i]
}
}
return cnt * arr[14] + cash
}
private func timing(_ money: Int) -> Int {
var cash = money
var cnt = 0
for i in 4..<arr.count {
if arr[i-3] < arr[i-2], arr[i-2] < arr[i-1], arr[i-1] < arr[i] {
if cnt > 0 {
cash += arr[i] * cnt
cnt = 0
}
} else if arr[i-3] > arr[i-2], arr[i-2] > arr[i-1], arr[i-1] > arr[i] {
if cash >= arr[i] {
cnt += cash / arr[i]
cash -= (cash / arr[i]) * arr[i]
}
}
}
return cnt * arr[14] + cash
}
if bnp(money) == timing(money) {
print("SAMESAME")
} else {
bnp(money) > timing(money) ? print("BNP") : print("TIMING")
}
๋ฐ์ํ