ํ”„๋กœ๊ทธ๋ž˜๋ฐ/์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด Swift

[๋ฐฑ์ค€ 23972] ์•…๋งˆ์˜ ์ œ์•ˆ (Swift)

๋น„๋น„ bibi 2023. 2. 14. 11:35

23972๋ฒˆ: ์•…๋งˆ์˜ ์ œ์•ˆ

์•…๋งˆ์—๊ฒŒ K์›์„ ์ง€๋ถˆํ–ˆ์„ ๋•Œ, ์ง€๋ถˆํ•˜๊ณ  ๋‚จ์€ ๊ธˆ์•ก์„ N๋ฐฐ๋กœ ๋งŒ๋“ค์–ด ์ค€๋‹ค.

์ด๋•Œ ์ตœ์†Œ ์–ผ๋งˆ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ์†ํ•ด๋ฅผ ๋ณด์ง€ ์•Š๋Š”์ง€ ์•Œ๊ณ  ์‹ถ๋‹ค.

K์™€ N์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ์†ํ•ด๋ฅผ ๋ณด์ง€ ์•Š๊ธฐ ์œ„ํ•ด ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•˜๋Š” ์ตœ์†Œ ๊ธˆ์•ก X๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

๋‹จ, ํ•ญ์ƒ ๋ฏผ์ฃผ๊ฐ€ ์†ํ•ด๋ฅผ ๋ณด๊ฒŒ ๋œ๋‹ค๋ฉด -1์„ ์ถœ๋ ฅํ•œ๋‹ค.

  • K, N, X๋Š” ์ •์ˆ˜์—ฌ์•ผ ํ•œ๋‹ค.
  • 1 โ‰ค K, N โ‰ค 200,000,000

ํ’€์ด

๋ฐฉ์ •์‹๊นŒ์ง€๋Š” ๋„์ถœํ–ˆ๋Š”๋ฐ ๋ฐ˜๋ก€๋ฅผ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ•ด์„œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ํ’€์ด๋ฅผ ๋ณด๊ณ  ํ’€์—ˆ๋‹ค.ใ… 

์›๋ž˜ ๋ˆ์ด X๋ผ๊ณ  ํ•œ๋‹ค๋ฉด, ๋ฌธ์ œ์˜ ์กฐ๊ฑด๋Œ€๋กœ ์‹์„ ์ž‘์„ฑํ–ˆ์„ ๋•Œ

(X - K) * N์ด ๋˜๊ณ , ์ด ๊ธˆ์•ก์ด ์›๋ž˜์˜ ๋ˆ X๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์•„์•ผ ํ•œ๋‹ค.

๋”ฐ๋ผ์„œ (X - K) * N = X ์˜ X๊ฐ’์„ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค.

์œ„ ์‹์„ X๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ •๋ฆฌํ•˜๋ฉด X = (N * K) / (N - 1) ์ด ๋œ๋‹ค. N๊ณผ K๋Š” ๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง€๋ฏ€๋กœ ์‰ฝ๊ฒŒ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋•Œ X์— ์†Œ์ˆ˜์  ์ดํ•˜ ๊ฐ’์ด ์ƒ๊ธฐ๋ฉด, X๋Š” ์ •์ˆ˜์—ฌ์•ผ ํ•œ๋‹ค๋Š” ์กฐ๊ฑด ๋•Œ๋ฌธ์— ๊ฐ’์„ ์˜ฌ๋ฆผํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค.

๋”ฐ๋ผ์„œ Swift์—์„œ๋Š” (N * K) % (N - 1) ์˜ ๊ฐ’์ด 0์ด ์•„๋‹ ๋•Œ, X์— 1์„ ๋”ํ•ด ์ฃผ๋Š” ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ โ€˜ํ•ญ์ƒ ์†ํ•ด๋ฅผ ๋ณด๊ฒŒ ๋˜๋Š” ๊ฒฝ์šฐโ€™ ๋Š” N = 1 ์ผ ๋•Œ์ด๋‹ค. (= ๊ทธ๋ƒฅ ์•…๋งˆ์—๊ฒŒ ๊ธฐ๋ถ€ํ•˜๋Š” ๊ฒฝ์šฐ..)

N์ด ์ •์ˆ˜์ด๊ณ  1 ์ด์ƒ์˜ ๊ฐ’์ด๋ฏ€๋กœ, 1์ธ ๊ฒฝ์šฐ๋งŒ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ๋ฉด ๋‚˜๋จธ์ง€ ๊ฒฝ์šฐ๋Š” X์ด์ƒ์˜ ์ตœ์†Œ๊ธˆ์•ก๋งŒ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด ํ•ญ์ƒ ์ด๋“์„ ๋ณด๊ฒŒ ๋œ๋‹ค.

๋”ฐ๋ผ์„œ N์ด 1์ผ ๋•Œ๋Š” ๋ฐฉ์ •์‹ ๊ณ„์‚ฐ ์—†์ด ๊ทธ๋ƒฅ -1์„ ์ถœ๋ ฅํ•˜๋„๋ก ์กฐ์น˜ํ•ด ์ค€๋‹ค.

let inputArr = readLine()!.split(separator: " ").map { Int($0)! }
let k = inputArr[0]
let n = inputArr[1]
var answer = 0

if n == 1 {
    answer = -1
} else {
    answer = (n * k) / (n - 1)
    if (n * k) % (n - 1) != 0 {
        answer += 1
    }
}
print(answer)

๋ฐ˜๋ก€ : K = N = 10 ์ผ ๋•Œ์™€ ๊ฐ™์ด, K์™€ N์ด ๊ฐ™์€ ๊ฒฝ์šฐ. ๊ทธ๋ฆฌ๊ณ  N์ด 1์ธ ๊ฒฝ์šฐ.


์ฒ˜์Œ ๊ณ„์‚ฐํ•  ๋•Œ์—๋Š” ๋‚˜๋ˆ—์…ˆ์— ์†Œ์ˆ˜์  ์ดํ•˜ ์ž๋ฆฌ์ˆ˜๊ฐ€ ์ƒ๊ธฐ๋Š” ๊ฒƒ ๋•Œ๋ฌธ์— Int๊ฐ€ ์•„๋‹Œ Double๋กœ ๋‹ค๋ฃจ๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ ๋งŽ์ด ํ—ค๋ฉจ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ํ•ญ์ƒ ์†ํ•ด๋ฅผ ๋ณด๊ฒŒ ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์–ด๋–ค ๊ฒฝ์šฐ์ธ์ง€ ๋– ์˜ฌ๋ฆฌ์ง€ ๋ชปํ•ด์„œ ๊ฒฐ๊ตญ ๋‹ต์„ ๋ณด๊ฒŒ ๋œ ๊ฒƒ ๊ฐ™๋‹ค.

์—ญ์‹œ ๋ฌธ์ œ์˜ ์กฐ๊ฑด์„ ์ž˜ ์ฝ์–ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค๐Ÿฅฒโ€ผ๏ธ