2022. 11. 6. 19:09ใ์ด๊ฒ์ด ์ฝ๋ฉํ ์คํธ๋ค/๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
๋ฐฑ์ค - ์ฃผ์ฌ์(Swift)
๋ฌธ์ ์ค๋ช
https://www.acmicpc.net/problem/1041
๋์ ํ์ด
๋ค๋ฅธ ์ฌ๋์ ํ์ด๋ฅผ ๋ณด๊ธฐ์ ์๋ ๋ฌธ์ ๋ฅผ ์ ์ดํดํ์ง๋ ๋ชปํ๋ค.
N*N*N๊ฐ๋ฅผ ์ด์ฉํด์ N*N*Nํฌ๊ธฐ์ ์ ์ก๋ฉด์ฒด๋ฅผ ๋ง๋ค๋ผ๊ณ ?
ํ์ง๋ง ์ด๋ ์กฐ๊ธ๋ง ์๊ฐํ๋ฉด ์ดํดํ ์ ์์๋ค. N์ด 2๋ผ๋ฉด 8๊ฐ๋ก 8ํฌ๊ธฐ(1์ธต์ 1x1x1์ 4์นธ, 2์ธต์ 1x1x1์ 4์นธ)๋ฅผ ๋ง๋ค๋ฉด ๋๋ค.
๋ฌธ์ ์ ํฌ์ปค์ค๋ ๋ณด์ด๋ ๋ฉด์ ์ต์๊ฐ์ด๋ค. ๊ทธ๋ผ ๋ณด์ด๋ ๋ฉด์ ๊ฐ์๊ฐ ๋ช์ธ์ง๋ง ์ฒดํฌํ๋ฉด ๋๋ค.
N์ด 1์ผ ๋๋ฅผ ์ ์ธํ๋ฉด(1์ผ๋๋ 5๋ฉด๋ง ๋ณด์) 1๋ฉด์ด ๋ณด์ผ๋, 2๋ฉด์ด ๋ณด์ผ๋, 3๋ฉด์ด ๋ณด์ผ๋๋ก ๋๋์ด์ง๋ค.
์ฆ 1๋ฉด์ผ๋ 2๋ฉด์ผ๋ 3๋ฉด์ผ๋์ ์ต์๊ฐ์ ๊ตฌํ๋ค N์ด ๋ณํจ์๋ฐ๋ผ ๊ฐ์๊ฐ ๋ช๊ฐ์ธ์ง๋ฅผ ๊ตฌํ๊ณ ๊ณฑํด์ฃผ๋ฉด ๋๋ค.
์ฌ๊ธฐ์ ์ค์ํ ๊ฒ์ ๋ง์ฃผ๋ณด๋ ๋ฉด ์ค์ ๋ ์์ ๊ฐ์ ๋ฃ์ด์ผํ๋ค๋ ๊ฒ์ด๋ค.
A๋ฉด์ F๋ฉด๊ณผ ๋ง์ฃผ๋ณด๊ธฐ ๋๋ฌธ์ ๋ ์์ ๊ฐ์ ๋ฃ์ด์ค์ผ ์ต์๊ฐ์ ๊ฐ์ง๋ ๋ฉด์ด๋๋ค. ๋๋จธ์ง๋ ๋ง์ฐฌ๊ฐ์ง์ด๋ค.
๊ทธ๋ฆฌ๊ณ ๊ฐ์๋ฅผ ๊ตฌํ๋๋ฐ ๊ณต์์ ๋ง๋ค์ด๋ณด๋ฉด (์์ธํ ๊ฑด ์ฃผ์์ ์์ต๋๋ค)
1๋ฉด์ผ๋ (N-1)*(N-1) + 4*(N-1)*(N-2)๊ฐ ๋๊ณ
2๋ฉด์ผ๋ 4*(N-2) + 4*(N-1)์ด ๋๊ณ
3๋ฉด์ผ๋๋ 4๊ฐ ๋๋ค.(๋งจ ์์ 4๊ฐ ๋ชจ์๋ฆฌ)
๊ทธ๋์ ์ด ๊ฐ์์ ์ต์๊ฐ์ด ๋์ค๋ ๋ฉด์ ์๋ฅผ ๊ณฑํด์ฃผ๋ฉด ๋ณด์ด๋ ๋ฉด์ ์ต์ ๊ฐ์๊ฐ ๋๋ค.
import Foundation
let N = Int(readLine()!)!
let dice = readLine()!.components(separatedBy:" ").map{Int($0)!}
if N == 1 {
var dices = dice.sorted(by: <)
dices.removeLast()
print(dices.reduce(0, +))
exit(0)
}
// ๋ง์ฃผ๋ณด๋ ๋ฉด ์ค์ ์์ ๊ฐ๋ค์ ์ฝ์
.
var min_dice = [Int]()
min_dice.append(min(dice[0], dice[5]))
min_dice.append(min(dice[1], dice[4]))
min_dice.append(min(dice[2], dice[3]))
min_dice.sort(by: <)
// ๋ฉด์ 1๋ฉด, 2๋ฉด, 3๋ฉด์ผ๋์ ์ต์๊ฐ
let min_one = min_dice[0]
let min_two = min_dice[0] + min_dice[1]
let min_three = min_dice.reduce(0, +)
// ๋ฉด์ด 1๋ฉด, 2๋ฉด, 3๋ฉด ๊ฐ๊ฐ ๋ณด์ฌ์ง๋ ๊ฒฝ์ฐ ์ฃผ์ฌ์์ ๊ฐ์
let one_cnt = (N-2)*(N-2) + 4*(N-2)*(N-1) // ๋งจ์์ ๊ฐ์ + ์๋ฉด์์์ ๊ฐ์
let two_cnt = 4*(N-2) + 4*(N-1) // ๋งจ ์์ ๊ฐ์ + ์๋ฉด์์์ ๊ฐ์
let three_cnt = 4 // ๋งจ ์ ๋ชจ์๋ฆฌ 4๊ฐ๋ง
var sum = 0
sum += min_one * one_cnt
sum += min_two * two_cnt
sum += min_three * three_cnt
print(sum)
'์ด๊ฒ์ด ์ฝ๋ฉํ ์คํธ๋ค > ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค - ๋จ์ด์ํ(Swift) (0) | 2022.10.25 |
---|---|
1์ด ๋ ๋๊น์ง- ์ด๊ฒ์ด ์ฝ๋ฉํ ์คํธ๋ค (0) | 2020.09.02 |
ํฐ ์์ ๋ฒ์น- ์ด๊ฒ์ด ์ฝ๋ฉํ ์คํธ๋ค (0) | 2020.09.02 |
๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ- ์ด๊ฒ์ด ์ฝ๋ฉํ ์คํธ๋ค (0) | 2020.09.02 |