Bibi's DevLog ๐Ÿค“๐ŸŽ

[๋ฐฑ์ค€ 5691] ํ‰๊ท  ์ค‘์•™๊ฐ’ ๋ฌธ์ œ (์ฆ๋ช…) ๋ณธ๋ฌธ

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

[๋ฐฑ์ค€ 5691] ํ‰๊ท  ์ค‘์•™๊ฐ’ ๋ฌธ์ œ (์ฆ๋ช…)

๋น„๋น„ bibi 2022. 11. 11. 23:02

5691๋ฒˆ: ํ‰๊ท  ์ค‘์•™๊ฐ’ ๋ฌธ์ œ

  • ์„ธ ์ˆ˜์˜ ํ‰๊ท ์€ (A+B+C) / 3
  • “1≤A≤B≤10์˜9์Šน”๋ผ๋Š” ์กฐ๊ฑด์ด ์ฃผ์–ด์ ธ ์žˆ๋‹ค. ← ๋งค์šฐ ์ค‘์š”!
  • ์ค‘์•™๊ฐ’ : ์—์„œ C๋ฅผ ์ถ”๊ฐ€ํ•ด ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ–ˆ์„ ๋•Œ ์ค‘๊ฐ„ ๊ฐ’
    • A<B<C์ธ ๊ฒฝ์šฐ
      • B๊ฐ€ ์ค‘์•™๊ฐ’์ด ๋จ
      • ํ‰๊ท  = ์ค‘์•™๊ฐ’์ด๋ฏ€๋กœ B = (A+B+C) / 3, 3B = A+B+C, C = 2B-A
    • A<C<B์ธ ๊ฒฝ์šฐ
      • C๊ฐ€ ์ค‘์•™๊ฐ’์ด ๋จ
      • ํ‰๊ท  = ์ค‘์•™๊ฐ’์ด๋ฏ€๋กœ C = (A+B+C) / 3, 2C = A+B, C = (A+B)/2
    • C<A<B์ธ ๊ฒฝ์šฐ
      • A๊ฐ€ ์ค‘์•™๊ฐ’์ด ๋จ
      • ํ‰๊ท  = ์ค‘์•™๊ฐ’์ด๋ฏ€๋กœ A = (A+B+C) / 3, 3A = A+B+C, C = 2A-B
  • ์ด๋•Œ A์™€ B๋Š” ํ•ญ์ƒ ์–‘์ˆ˜์ด๊ณ  B๋Š” A๋ณด๋‹ค ํ•ญ์ƒ ํฌ๊ฑฐ๋‚˜ ๊ฐ™์œผ๋ฏ€๋กœ, C๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š” 2B-A, (A+B)/2, 2A-B ์ค‘์—์„œ ๊ฐ€์žฅ ์ž‘์€ ์ •์ˆ˜๋Š” 2A-B ๊ฐ€ ๋œ๋‹ค.
    • ์™œ? 2B-A, (A+B)/2 ๋Š” ๋ฌธ์ œ์— ์ฃผ์–ด์ง„ ์กฐ๊ฑด์œผ๋กœ ์ธํ•ด ์–ด๋–ค ๊ฒฝ์šฐ์—๋„ ํ•ญ์ƒ ์–‘์ˆ˜์ด์ง€๋งŒ, 2A-B ๋Š” A์™€ B๊ฐ„์˜ ๊ฐ„๊ฒฉ์ด ํฐ ๊ฒฝ์šฐ ์Œ์ˆ˜๊ฐ€ ๋‚˜์˜ฌ ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž„.
      ๊ทธ๋ž˜์„œ ๋‹ต์ธ C๋Š” 2A-B ๋กœ ๊ตฌํ•˜๊ฒŒ ๋œ๋‹ค!

ํ’€์ด (Swift)

์ฒ˜์Œ์—” ๊ทธ๋ƒฅ ์˜ˆ์ œ ์ฝ”๋“œ ๋ณด๊ณ  ๊ฐ์œผ๋กœ "A๊ฐ€ ์ค‘์•™๊ฐ’์ด ๋  ๋•Œ๊ฐ€ ํ‰๊ท =์ค‘์•™๊ฐ’์ด๋ฉด์„œ C๊ฐ€ ์ตœ์†Œ์ธ ๊ฒฝ์šฐ์ธ ๊ฒƒ ๊ฐ™๋‹ค"๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ณ  ํ’€๊ธด ํ–ˆ์ง€๋งŒ, ๋งž๊ณ  ๋‚˜์„œ ์™œ ๊ทธ๋ ‡๊ฒŒ ๋˜๋Š” ๊ฑด์ง€ ๊ตฌ๊ธ€๋งํ•˜๋ฉฐ ๋‚˜๋ฆ„ ์ฆ๋ช…์„ ์ •๋ฆฌํ•ด ๋ณด์•˜๋‹ค.

while let input = readLine() {
    if input == "0 0" {
        break
    }
    let inputArr = input.split(separator: " ").map { Int($0)! }
    print(inputArr[0] * 2 - inputArr[1])
}