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

[๋ฐฑ์ค€ 19572] ๊ฐ€๋ญ„(Small) (Swift) - ์ž์„ธํ•œ ํ’€์ด ํฌํ•จ ๋ณธ๋ฌธ

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

[๋ฐฑ์ค€ 19572] ๊ฐ€๋ญ„(Small) (Swift) - ์ž์„ธํ•œ ํ’€์ด ํฌํ•จ

๋น„๋น„ bibi 2023. 2. 17. 19:15

19572๋ฒˆ: ๊ฐ€๋ญ„(Small)

1๋ฒˆ, 2๋ฒˆ, 3๋ฒˆ ์นธ์œผ๋กœ ๊ตฌ์„ฑ๋œ ๋•…์— ๋น„๋ฅผ ๋‚ด๋ฆฐ๋‹ค.

๊ฐ ์นธ์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ•์ˆ˜๋Ÿ‰์€ ์ •ํ™•ํžˆ d1, d2, d3์ด ๋˜์–ด์•ผ ํ•œ๋‹ค. (1≤d1, d2, d3≤10์˜6์Šน)

๊ตฌํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ a, b, c์ด๋ฉฐ (a, b, c๋Š” ์–‘์˜ ์‹ค์ˆ˜)

  • a๋Š” 1๋ฒˆ ์นธ๊ณผ 2๋ฒˆ ์นธ์— ๋ฟŒ๋ฆฌ๋Š” ๊ฐ•์ˆ˜๋Ÿ‰์„,
  • b๋Š” 1๋ฒˆ ์นธ๊ณผ 3๋ฒˆ ์นธ์— ๋ฟŒ๋ฆฌ๋Š” ๊ฐ•์ˆ˜๋Ÿ‰์„,
  • c๋Š” 2๋ฒˆ ์นธ๊ณผ 3๋ฒˆ ์นธ์— ๋ฟŒ๋ฆฌ๋Š” ๊ฐ•์ˆ˜๋Ÿ‰์„ ์˜๋ฏธํ•œ๋‹ค.

ํ’€์ด

ํ˜ผ์ž์„œ ํ’€์–ด๋ณด๋‹ค๊ฐ€ ํ’€์ด๋ฒ•์ด ๋– ์˜ค๋ฅด์ง€ ์•Š์•„์„œ ๊ตฌ๊ธ€๋ง์„ ํ–ˆ๋‹ค.๐Ÿฅฒ

๊ทธ๋ฆฌ๋””๋‚˜ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์œผ๋กœ ๊ตฌํ•˜๋ ค๊ณ  ์ ‘๊ทผํ–ˆ๋Š”๋ฐ, ์‚ผ์ฐจ๋ฐฉ์ •์‹์„ ์‚ฌ์šฉํ•ด ์ˆ˜ํ•™์ ์œผ๋กœ ํ’€์–ด๋‚ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์˜€๋‹ค.

์ฃผ์˜์‚ฌํ•ญ

์‚ผ์ฐจ๋ฐฉ์ •์‹์„ ๊ตฌํ•  ๋•Œ ์ฃผ์˜ํ•  ์ ์€, a = d1 + d2, b = d1 + d3, c = d2 + d3 ์ด๋Ÿฐ ์‹์œผ๋กœ ๊ตฌํ•˜๋ฉด ์•ˆ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. a๋Š” 1๋ฒˆ ์นธ ๊ฐ•์ˆ˜๋Ÿ‰ + 2๋ฒˆ ์นธ ๊ฐ•์ˆ˜๋Ÿ‰์ด ์•„๋‹ˆ๋‹ค. a๋Š” 1๋ฒˆ ์นธ๊ณผ 2๋ฒˆ ์นธ์— ๋ฟŒ๋ ค์ง€๋Š” ๊ฐ•์ˆ˜๋Ÿ‰์ด๋‹ค. b์™€ c๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค. (๋‚ด๊ฐ€ ์—ฌ๊ธฐ์„œ ํ—ท๊ฐˆ๋ ธ๋‹ค.ใ… )

์‚ผ์ฐจ๋ฐฉ์ •์‹์œผ๋กœ ํ’€์ดํ•˜๊ธฐ

https://user-images.githubusercontent.com/67407678/219614095-1ea3cf58-fb1e-4bf7-824c-fe35c7d5a4c8.png

์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด, a๋งŒํผ 1,2๋ฒˆ ์˜์—ญ์—, b๋งŒํผ 1,3๋ฒˆ ์˜์—ญ์—, c๋งŒํผ 2,3๋ฒˆ ์˜์—ญ์— ๋ฟŒ๋ ค์ง„๋‹ค.

๋”ฐ๋ผ์„œ d1 = a + b, d2 = a + c, d3 = b + c์ด๋‹ค.

https://user-images.githubusercontent.com/67407678/219614090-a15b5652-9d17-463c-8cce-bfb0ea8d5e43.png

์œ„์—์„œ ๋„์ถœํ•œ ์„ธ ๊ฐ€์ง€ ์‹์„ ๊ฐ€์ง€๊ณ  ์ขŒ๋ณ€๋ผ๋ฆฌ, ์šฐ๋ณ€๋ผ๋ฆฌ ๋”ํ•œ๋‹ค.

d1 + d2 + d3 = 2(a + b + c)๊ฐ€ ๋˜๊ณ , ๋”ฐ๋ผ์„œ a + b + c = (d1 + d2 + d3) / 2๊ฐ€ ๋œ๋‹ค.

์ด์ œ ์ด๋ ‡๊ฒŒ ๋„์ถœํ•œ a + b + c = (d1 + d2 + d3) / 2 ๋ผ๋Š” ์‹์„ ๊ฐ€์ง€๊ณ  ์•„๋ž˜์™€ ๊ฐ™์ด a,b,c๋ฅผ ์ฐจ๋ก€๋กœ ๊ตฌํ•ด ๋ณธ๋‹ค.

https://user-images.githubusercontent.com/67407678/219614073-a7cbd796-41f4-419b-9a63-8a0b377c2c81.png

  • a = (d1 + d2 + d3) / 2 - (b + c)
    • ์ด๋•Œ b + c ๋Š” ๋งจ ์ฒ˜์Œ ๊ตฌํ•œ ์‹์—์„œ d3๊ณผ ๊ฐ™๋‹ค.
    • ๋”ฐ๋ผ์„œ a = (d1 + d2 + d3) / 2 - d3 ์œผ๋กœ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋ ‡๊ฒŒ a, b, c๋ฅผ ๊ตฌํ–ˆ์„ ๋•Œ, ๋ฌธ์ œ์˜ ์กฐ๊ฑด์ธ “a, b, c๋Š” ๋ชจ๋‘ ์–‘์˜ ์‹ค์ˆ˜” ์กฐ๊ฑด์— ๋งž๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

ํ•˜๋‚˜๋ผ๋„ ์Œ์ˆ˜๊ฐ€ ์žˆ๋‹ค๋ฉด ์กฐ๊ฑด์— ๋งž๊ฒŒ ๋น„๋ฅผ ๋‚ด๋ฆด ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์ด๋ฏ€๋กœ, -1์„ ์ถœ๋ ฅํ•œ๋‹ค.

abc ๋ชจ๋‘ ์–‘์ˆ˜๋ผ๋ฉด ์กฐ๊ฑด์— ๋งž๊ฒŒ ๋น„๋ฅผ ๋‚ด๋ฆด ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, 1์„ ์ถœ๋ ฅํ•œ ๋’ค abc๋ฅผ ๊ฐ๊ฐ ์†Œ์ˆ˜1์งธ์ž๋ฆฌ๊นŒ์ง€ ๋ฐ˜์˜ฌ๋ฆผํ•ด ์ถœ๋ ฅํ•œ๋‹ค.

  • Swift์—์„œ๋Š” String(format:arguments:) ์„ ํ™œ์šฉํ–ˆ๋‹ค. ์ž์„ธํ•œ ์‚ฌ์šฉ๋ฒ•์€ ์—ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ . (import Foundation์ด ํ•„์š”ํ•˜๋‹ค)
import Foundation

let inputArr = readLine()!.split(separator: " ").map { Double($0)! }
let d1 = inputArr[0], d2 = inputArr[1], d3 = inputArr[2]
let abcSum = (d1 + d2 + d3) / 2

let a = abcSum - d3
let b = abcSum - d2
let c = abcSum - d1

if a > 0 && b > 0 && c > 0 {
    print(1)
    print(String(format: "%.1f", a),
          String(format: "%.1f", b),
          String(format: "%.1f", c),
          separator: " ")
} else {
    print(-1)
}