Bibi's DevLog ๐ค๐
[๋ฐฑ์ค 2798] ๋ธ๋์ญ (Swift) ๋ณธ๋ฌธ
ํ๋ก๊ทธ๋๋ฐ/์๊ณ ๋ฆฌ์ฆ ํ์ด Swift
[๋ฐฑ์ค 2798] ๋ธ๋์ญ (Swift)
๋น๋น bibi 2022. 9. 21. 14:51- ํฉ์ด ์ฃผ์ด์ง ์ซ์๋ฅผ ๋์ง ์์ผ๋ฉด์ ์ต๋ํ ๊ฐ๊น์ด ์ซ์ 3๊ฐ์ ์กฐํฉ์ ๊ตฌํด ๊ทธ ํฉ์ ์ถ๋ ฅํ๋ ๋ฌธ์ .
์ ๊ทผ
- ํฉ์ ์ต๋๊ฐ์ ๊ตฌํด์ผ ํ๋ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ํตํด ํฐ ์ซ์๋ถํฐ ๊ณจ๋ผ์ ๋ํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์ ๊ทผํ๋ค.
- ๊ทธ๋ฌ๋ ์ด ๋ฌธ์ ์ ๊ฒฝ์ฐ ์ต๋๊ฐ๋ถํฐ ๋ํ์ ๋ ์ ๋ต์ด ์๋ ๊ฒฝ์ฐ๊ฐ ์กด์ฌํ๋ค.
- ์์ 1์ธ ํฉ์ด 21์ด ๋๋ ์ธ ์ซ์๋, [5, 6, 7, 8, 9] ์์ ์ต๋๊ฐ์ ํฌํจํ์ง ์์ผ๋ฉฐ [6, 7, 8] ์ ๋ํ 21์ด์๋ค.
- ์ฌ๊ธฐ์ ๊ทธ๋ฆฌ๋๋ก ์ ๊ทผํ๋ฉด ์๋๊ฒ ๋ค๋ ๊ฑธ ์์์ฐจ๋ ธ์ด์ผ ํ๋ค..!
- 1์๊ฐ์ ๋ ์ฝ์ง์ ํ๋ค๊ฐ ๊ฒฐ๊ตญ ๊ตฌ๊ธ๋ง์ ๋์์ ๋ฐ์๊ณ , ๊ทธ๋ฆฌ๋๊ฐ ์๋ ๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ์ ์ฐ๋ ๋ฌธ์ ์๋ค.
- ์ฆ ์ฃผ์ด์ง ์นด๋์์ 3๊ฐ์ ์กฐํฉ์ ๋ชจ๋ ๊ตฌํ๊ณ , ๊ทธ ์ค์์ ์ฃผ์ด์ง ๊ฐ์ ๊ฐ์ฅ ๊ฐ๊น์ด ์กฐํฉ์ ์ฐพ์์ผ ํ๋ค.
- ์๊ฐ์ ํ์ด 1์ด๋ผ ํด๊ฒฐํ ์ ์์๊น? ํ๋๋ฐ, 3์ฅ์ ์กฐํฉ๋ง์ ์ฐพ๋๊ฑฐ๋ผ ๊ทธ๋ฐ์ง ๊ฐ๋ฅํ๋ค..โ0โ
- ๊ทธ๋ฌ๊ณ ๋ณด๋ ์ ์ ์กฐํฉ์ ๊ณต๋ถํ๊ฒ ๋ง๋ค์๋ ์ผ๊ณฑ๋์์ด ์ ๋น์ทํ๋ค. ์๊ณ ๋์์ผ ๋ณด์ด๋๊ตฌ๋.
ํ์ด
- ์นด๋ 3์ฅ์ ๋ชจ๋ ์กฐํฉ์ ์ฐพ๋ ๊ฒ์ด๋ฏ๋ก 3์ค for๋ฌธ์ผ๋ก ๊ตฌํ ์ ์๋ค. ์กฐํฉ์ ๊ตฌํํด์๋ ํ ์ ์์ ๊ฒ์!
currentMax โค sum && sum โค totalMax
๋์Range.contains(sum)
๋ฅผ ์ฌ์ฉํด ๋ดค๋๋ฐ ์ข์ ๊ฒ ๊ฐ๋ค.
let input = readLine()!.split(separator: " ").map { Int($0)! }
let totalMax = input[1]
let count = input[0]
var cards = readLine()!.split(separator: " ").map { Int($0)! }
var currentMax = 0
for i in 0..<count {
for j in i + 1..<count { // ์ง์ ๋ฐ๋ณต๋ฌธ์์ ์ฌ์ฉํ ๋ค์ ์์๋ถํฐ ์ฌ์ฉ - ์ค๋ณต ํผํ๊ธฐ
for k in j + 1..<count {
print(cards[i], cards[j], cards[k])
let sum = cards[i] + cards[j] + cards[k]
if (currentMax...totalMax).contains(sum) {
currentMax = sum
}
}
}
}
print(currentMax)
'ํ๋ก๊ทธ๋๋ฐ > ์๊ณ ๋ฆฌ์ฆ ํ์ด Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค 2846] ์ค๋ฅด๋ง๊ธธ (Swift) (0) | 2022.09.23 |
---|---|
[๋ฐฑ์ค 2822] ์ ์ ๊ณ์ฐ (Swift) (0) | 2022.09.22 |
[๋ฐฑ์ค 2789] ์ ํ ๊ธ์ง (Swift) (0) | 2022.09.21 |
[๋ฐฑ์ค 24262 ~ 24267] ์๊ณ ๋ฆฌ์ฆ ์์ - ์๊ณ ๋ฆฌ์ฆ์ ์ํ ์๊ฐ (1~6) (Swift) (0) | 2022.09.20 |
[๋ฐฑ์ค 25191] ์นํจ๋์ค๋ฅผ ์ถ๋ ๊ณฐ๊ณฐ์ด๋ฅผ ๋ณธ ์์ค (Swift) (0) | 2022.09.19 |