๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โŒจ๏ธ Language/swift

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV.1] ์ฝœ๋ผ ๋ฌธ์ œ

by hyebin (Helia) 2023. 3. 9.
๋ฐ˜์‘ํ˜•
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV.1 ๋ชจ์Œ

์ค‘๋ณต๋œ ์ˆซ์ž ๊ฐœ์ˆ˜

๋ฌธ์ œ ์„ค๋ช…

์˜ค๋ž˜์ „ ์œ ํ–‰ํ–ˆ๋˜ ์ฝœ๋ผ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝœ๋ผ ๋ฌธ์ œ์˜ ์ง€๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ •๋‹ต์€ ์•„๋ฌด์—๊ฒŒ๋„ ๋งํ•˜์ง€ ๋งˆ์„ธ์š”.
์ฝœ๋ผ ๋นˆ ๋ณ‘ 2๊ฐœ๋ฅผ ๊ฐ€์ ธ๋‹ค์ฃผ๋ฉด ์ฝœ๋ผ 1๋ณ‘์„ ์ฃผ๋Š” ๋งˆํŠธ๊ฐ€ ์žˆ๋‹ค. ๋นˆ ๋ณ‘ 20๊ฐœ๋ฅผ ๊ฐ€์ ธ๋‹ค์ฃผ๋ฉด ๋ช‡ ๋ณ‘์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š”๊ฐ€?
๋‹จ, ๋ณด์œ  ์ค‘์ธ ๋นˆ ๋ณ‘์ด 2๊ฐœ ๋ฏธ๋งŒ์ด๋ฉด, ์ฝœ๋ผ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์—†๋‹ค.

๋ฌธ์ œ๋ฅผ ํ’€๋˜ ์ƒ๋นˆ์ด๋Š” ์ฝœ๋ผ ๋ฌธ์ œ์˜ ์™„๋ฒฝํ•œ ํ•ด๋‹ต์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ์ƒ๋นˆ์ด๊ฐ€ ํ‘ผ ๋ฐฉ๋ฒ•์€ ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์šฐ์„  ์ฝœ๋ผ ๋นˆ ๋ณ‘ 20๋ณ‘์„ ๊ฐ€์ ธ๊ฐ€์„œ 10๋ณ‘์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. ๋ฐ›์€ 10๋ณ‘์„ ๋ชจ๋‘ ๋งˆ์‹  ๋’ค, ๊ฐ€์ ธ๊ฐ€์„œ 5๋ณ‘์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. 5๋ณ‘ ์ค‘ 4๋ณ‘์„ ๋ชจ๋‘ ๋งˆ์‹  ๋’ค ๊ฐ€์ ธ๊ฐ€์„œ 2๋ณ‘์„ ๋ฐ›๊ณ , ๋˜ 2๋ณ‘์„ ๋ชจ๋‘ ๋งˆ์‹  ๋’ค ๊ฐ€์ ธ๊ฐ€์„œ 1๋ณ‘์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. ๋ฐ›์€ 1๋ณ‘๊ณผ 5๋ณ‘์„ ๋ฐ›์•˜์„ ๋•Œ ๋‚จ์€ 1๋ณ‘์„ ๋ชจ๋‘ ๋งˆ์‹  ๋’ค ๊ฐ€์ ธ๊ฐ€๋ฉด 1๋ณ‘์„ ๋˜ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ƒ๋นˆ์ด๋Š” ์ด 10 + 5 + 2 + 1 + 1 = 19๋ณ‘์˜ ์ฝœ๋ผ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๋ฅผ ์—ด์‹ฌํžˆ ํ’€๋˜ ์ƒ๋นˆ์ด๋Š” ์ผ๋ฐ˜ํ™”๋œ ์ฝœ๋ผ ๋ฌธ์ œ๋ฅผ ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ๋นˆ ๋ณ‘ a๊ฐœ๋ฅผ ๊ฐ€์ ธ๋‹ค์ฃผ๋ฉด ์ฝœ๋ผ b๋ณ‘์„ ์ฃผ๋Š” ๋งˆํŠธ๊ฐ€ ์žˆ์„ ๋•Œ, ๋นˆ ๋ณ‘ n๊ฐœ๋ฅผ ๊ฐ€์ ธ๋‹ค์ฃผ๋ฉด ๋ช‡ ๋ณ‘์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š”์ง€ ๊ณ„์‚ฐํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๊ธฐ์กด ์ฝœ๋ผ ๋ฌธ์ œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ๋ณด์œ  ์ค‘์ธ ๋นˆ ๋ณ‘์ด a๊ฐœ ๋ฏธ๋งŒ์ด๋ฉด, ์ถ”๊ฐ€์ ์œผ๋กœ ๋นˆ ๋ณ‘์„ ๋ฐ›์„ ์ˆœ ์—†์Šต๋‹ˆ๋‹ค. ์ƒ๋นˆ์ด๋Š” ์—ด์‹ฌํžˆ ๊ณ ์‹ฌํ–ˆ์ง€๋งŒ, ์ผ๋ฐ˜ํ™”๋œ ์ฝœ๋ผ ๋ฌธ์ œ์˜ ๋‹ต์„ ์ฐพ์„ ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒ๋นˆ์ด๋ฅผ ๋„์™€, ์ผ๋ฐ˜ํ™”๋œ ์ฝœ๋ผ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค์–ด ์ฃผ์„ธ์š”.

์ฝœ๋ผ๋ฅผ ๋ฐ›๊ธฐ ์œ„ํ•ด ๋งˆํŠธ์— ์ฃผ์–ด์•ผ ํ•˜๋Š” ๋ณ‘ ์ˆ˜ a, ๋นˆ ๋ณ‘ a๊ฐœ๋ฅผ ๊ฐ€์ ธ๋‹ค์ฃผ๋ฉด ๋งˆํŠธ๊ฐ€ ์ฃผ๋Š” ์ฝœ๋ผ ๋ณ‘ ์ˆ˜ b, ์ƒ๋นˆ์ด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋นˆ ๋ณ‘์˜ ๊ฐœ์ˆ˜ n์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ์ƒ๋นˆ์ด๊ฐ€ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ฝœ๋ผ์˜ ๋ณ‘ ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด ์ฃผ์„ธ์š”.

์ œํ•œ ์‚ฌํ•ญ

  • 1 ≤ b < a ≤ n ≤ 1,000,000
  • ์ •๋‹ต์€ ํ•ญ์ƒ int ๋ฒ”์œ„๋ฅผ ๋„˜์ง€ ์•Š๊ฒŒ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

a b n result
2 1 20 19
3 1 20 9

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

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

  • ๋ณธ๋ฌธ์—์„œ ์„ค๋ช…ํ•œ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

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

  • ๋นˆ ๋ณ‘ 20๊ฐœ ์ค‘ 18๊ฐœ๋ฅผ ๋งˆํŠธ์— ๊ฐ€์ ธ๊ฐ€์„œ, 6๋ณ‘์˜ ์ฝœ๋ผ๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ์ƒ๋นˆ์ด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ฝœ๋ผ ๋ณ‘์˜ ์ˆ˜๋Š” 8(20 – 18 + 6 = 8) ๊ฐœ์ž…๋‹ˆ๋‹ค.
  • ๋นˆ ๋ณ‘ 8๊ฐœ ์ค‘ 6๊ฐœ๋ฅผ ๋งˆํŠธ์— ๊ฐ€์ ธ๊ฐ€์„œ, 2๋ณ‘์˜ ์ฝœ๋ผ๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ์ƒ๋นˆ์ด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ฝœ๋ผ ๋ณ‘์˜ ์ˆ˜๋Š” 4(8 – 6 + 2 = 4) ๊ฐœ์ž…๋‹ˆ๋‹ค.
  • ๋นˆ ๋ณ‘ 4 ๊ฐœ์ค‘ 3๊ฐœ๋ฅผ ๋งˆํŠธ์— ๊ฐ€์ ธ๊ฐ€์„œ, 1๋ณ‘์˜ ์ฝœ๋ผ๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ์ƒ๋นˆ์ด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ฝœ๋ผ ๋ณ‘์˜ ์ˆ˜๋Š” 2(4 – 3 + 1 = 2) ๊ฐœ์ž…๋‹ˆ๋‹ค.
  • 3๋ฒˆ์˜ ๊ตํ™˜ ๋™์•ˆ ์ƒ๋นˆ์ด๋Š” 9(6 + 2 + 1 = 9) ๋ณ‘์˜ ์ฝœ๋ผ๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.

์ œ์ถœ

import Foundation

func solution(_ a:Int, _ b:Int, _ n:Int) -> Int {
    var coke = n
    var answer = 0
    
    while coke >= a{
        answer += (coke/a)*b
        coke = (coke/a)*b + coke%a
    }
    
    return answer
}
์ฝœ๋ผ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋‹ด์„ ๋ณ€์ˆ˜ coke์™€ ๊ฒฐ๊ด๊ฐ’์„ ๋‹ด์„ ๋ณ€์ˆ˜ answer๋ฅผ ์„ ์–ธํ•œ๋‹ค.

๋นˆ๋ณ‘์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋งˆํŠธ์— ์ฃผ์–ด์•ผ ํ•˜๋Š” ๋ณ‘ ์ˆ˜ ๋ณด๋‹ค ๊ฐ™๊ฑฐ๋‚˜ ํฐ ๊ฒฝ์šฐ์—๋งŒ ๋ฐ˜๋ณต๋ฌธ์„ ์‹คํ–‰ํ•œ๋‹ค.
answer ๋ณ€์ˆ˜์— ๋Œ๋ ค๋ฐ›์€ ์ฝœ๋ผ์˜ ๊ฐœ์ˆ˜ = (ํ˜„์žฌ ์ฝœ๋ผ ๋ณ‘์˜ ๊ฐœ์ˆ˜/๋งˆํŠธ์— ์ฃผ์–ด์•ผ ํ•˜๋Š” ๋ณ‘ ์ˆ˜*๋Œ๋ ค์ฃผ๋Š” ์ฝœ๋ผ์˜ ๊ฐœ์ˆ˜)๋ฅผ ๋”ํ•œ๋‹ค.
ํ˜„์žฌ ๋ณ‘์˜ ๊ฐœ์ˆ˜ = ๋Œ๋ ค๋ฐ›์€ ์ฝœ๋ผ์˜ ๊ฐœ์ˆ˜ + ๋‚จ์€ ๋นˆ๋ณ‘์˜ ๊ฐœ์ˆ˜(ํ˜„์žฌ ์ฝœ๋ผ๋ณ‘์˜ ๊ฐœ์ˆ˜% ๋งˆํŠธ์— ์ฃผ์–ด์•ผ ํ•˜๋Š” ๋ณ‘ ์ˆ˜)๋ฅผ coke ๋ณ€์ˆ˜์— ์ €์žฅํ•œ๋‹ค.

๋‹ค๋ฅธ ํ’€์ด

func solution(_ a:Int, _ b:Int, _ n:Int) -> Int {
    return (n - b) / (a - b) * b
}
(๋นˆ ๋ณ‘์˜ ๊ฐœ์ˆ˜ - ๋Œ๋ ค์ฃผ๋Š” ์ฝœ๋ผ์˜ ๊ฐœ์ˆ˜) /(์ฃผ์–ด์•ผํ•˜๋Š” ๋ณ‘์˜ ๊ฐœ์ˆ˜ - ๋Œ๋ ค์ฃผ๋Š” ์ฝœ๋ผ์˜ ๊ฐœ์ˆ˜) * ๋Œ๋ ค์ฃผ๋Š” ์ฝœ๋ผ์˜ ๊ฐœ์ˆ˜

 

๋ฐ˜์‘ํ˜•