Bibi's DevLog ๐ค๐
[๋ฐฑ์ค 19572] ๊ฐ๋ญ(Small) (Swift) - ์์ธํ ํ์ด ํฌํจ ๋ณธ๋ฌธ
[๋ฐฑ์ค 19572] ๊ฐ๋ญ(Small) (Swift) - ์์ธํ ํ์ด ํฌํจ
๋น๋น bibi 2023. 2. 17. 19:151๋ฒ, 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๋ ๋ง์ฐฌ๊ฐ์ง์ด๋ค. (๋ด๊ฐ ์ฌ๊ธฐ์ ํท๊ฐ๋ ธ๋ค.ใ )
์ผ์ฐจ๋ฐฉ์ ์์ผ๋ก ํ์ดํ๊ธฐ
์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด, a๋งํผ 1,2๋ฒ ์์ญ์, b๋งํผ 1,3๋ฒ ์์ญ์, c๋งํผ 2,3๋ฒ ์์ญ์ ๋ฟ๋ ค์ง๋ค.
๋ฐ๋ผ์ d1 = a + b, d2 = a + c, d3 = b + c์ด๋ค.
์์์ ๋์ถํ ์ธ ๊ฐ์ง ์์ ๊ฐ์ง๊ณ ์ข๋ณ๋ผ๋ฆฌ, ์ฐ๋ณ๋ผ๋ฆฌ ๋ํ๋ค.
d1 + d2 + d3 = 2(a + b + c)๊ฐ ๋๊ณ , ๋ฐ๋ผ์ a + b + c = (d1 + d2 + d3) / 2๊ฐ ๋๋ค.
์ด์ ์ด๋ ๊ฒ ๋์ถํ a + b + c = (d1 + d2 + d3) / 2 ๋ผ๋ ์์ ๊ฐ์ง๊ณ ์๋์ ๊ฐ์ด a,b,c๋ฅผ ์ฐจ๋ก๋ก ๊ตฌํด ๋ณธ๋ค.
- 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)
}
'ํ๋ก๊ทธ๋๋ฐ > ์๊ณ ๋ฆฌ์ฆ ํ์ด Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค 16435] ์ค๋ค์ดํฌ๋ฒ๋ (Swift) (0) | 2023.02.17 |
---|---|
[๋ฐฑ์ค 16199] ๋์ด ๊ณ์ฐํ๊ธฐ (Swift) (0) | 2023.02.16 |
[๋ฐฑ์ค 16171] ๋๋ ์น๊ตฌ๊ฐ ์ ๋ค(Small) (Swift) (0) | 2023.02.15 |
[๋ฐฑ์ค 23972] ์ ๋ง์ ์ ์ (Swift) (0) | 2023.02.14 |
[๋ฐฑ์ค 15734] ๋ช ์ฅ ๋จ์ ํ (Swift) (0) | 2023.02.07 |