๋ฌธ์ ์ค๋ช
์ํ์ด๋ ์๊ธฐ๋ค. ์๊ธฐ ์ํ์ด๋ ์์ฐ์๊ฐ ์ฐ์ฌ์ ธ์๋ ์นด๋๋ฅผ ๊ฐ๊ณ ๋ค์ํ ๋์ด๋ฅผ ํ๋ฉฐ ๋ ธ๋ ๊ฒ์ ์ข์ํ๋ค. ์ค๋ ์๊ธฐ ์ํ์ด๋ ๋ฌด์จ ๋์ด๋ฅผ ํ๊ณ ์์๊น? ๋ฐ๋ก ์นด๋ ํฉ์ฒด ๋์ด์ด๋ค!
์๊ธฐ ์ํ์ด๋ ์์ฐ์๊ฐ ์ฐ์ฌ์ง ์นด๋๋ฅผ n์ฅ ๊ฐ๊ณ ์๋ค. ์ฒ์์ i๋ฒ ์นด๋์ ai๊ฐ ์ฐ์ฌ์๋ค. ์นด๋ ํฉ์ฒด ๋์ด๋ ์ด ์นด๋๋ค์ ํฉ์ฒดํ๋ฉฐ ๋ ธ๋ ๋์ด์ด๋ค. ์นด๋ ํฉ์ฒด๋ ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ผ๋ก ์ด๋ฃจ์ด์ง๋ค.
- x๋ฒ ์นด๋์ y๋ฒ ์นด๋๋ฅผ ๊ณจ๋ผ ๊ทธ ๋ ์ฅ์ ์ฐ์ฌ์ง ์๋ฅผ ๋ํ ๊ฐ์ ๊ณ์ฐํ๋ค. (x ≠ y)
- ๊ณ์ฐํ ๊ฐ์ x๋ฒ ์นด๋์ y๋ฒ ์นด๋ ๋ ์ฅ ๋ชจ๋์ ๋ฎ์ด ์ด๋ค.
์ด ์นด๋ ํฉ์ฒด๋ฅผ ์ด m๋ฒ ํ๋ฉด ๋์ด๊ฐ ๋๋๋ค. m๋ฒ์ ํฉ์ฒด๋ฅผ ๋ชจ๋ ๋๋ธ ๋ค, n์ฅ์ ์นด๋์ ์ฐ์ฌ์๋ ์๋ฅผ ๋ชจ๋ ๋ํ ๊ฐ์ด ์ด ๋์ด์ ์ ์๊ฐ ๋๋ค. ์ด ์ ์๋ฅผ ๊ฐ์ฅ ์๊ฒ ๋ง๋๋ ๊ฒ์ด ๋์ด์ ๋ชฉํ์ด๋ค.
์๊ธฐ ์ํ์ด๋ ์ํ์ ์ข์ํ๊ธด ํ์ง๋ง, ์์ง ์๊ธฐ์ด๊ธฐ ๋๋ฌธ์ ์ ์๋ฅผ ์ผ๋ง๋ ์๊ฒ ๋ง๋ค ์ ์๋์ง๋ฅผ ์ ์๋ ์์๋ค(์ด๋ฅธ ์ํ์ด๋ ๋น์ฐํ ์ฝ๊ฒ ์ ์ ์๋ค). ๊ทธ๋์ ๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ์ด ๋ฐ์ด๋ ์ฌ๋ฌ๋ถ์๊ฒ ๋์์ ์์ฒญํ๋ค. ๋ง๋ค ์ ์๋ ๊ฐ์ฅ ์์ ์ ์๋ฅผ ๊ณ์ฐํ๋ ํ๋ก๊ทธ๋จ์ ๋ง๋ค์ด๋ณด์.
์ ๋ ฅ
์ฒซ ๋ฒ์งธ ์ค์ ์นด๋์ ๊ฐ์๋ฅผ ๋ํ๋ด๋ ์ n(2 ≤ n ≤ 1,000)๊ณผ ์นด๋ ํฉ์ฒด๋ฅผ ๋ช ๋ฒ ํ๋์ง๋ฅผ ๋ํ๋ด๋ ์ m(0 ≤ m ≤ 15×n)์ด ์ฃผ์ด์ง๋ค.
๋ ๋ฒ์งธ ์ค์ ๋งจ ์ฒ์ ์นด๋์ ์ํ๋ฅผ ๋ํ๋ด๋ n๊ฐ์ ์์ฐ์ a1, a2, …, an์ด ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋์ด ์ฃผ์ด์ง๋ค. (1 ≤ ai ≤ 1,000,000)
์ถ๋ ฅ
์ฒซ ๋ฒ์งธ ์ค์ ๋ง๋ค ์ ์๋ ๊ฐ์ฅ ์์ ์ ์๋ฅผ ์ถ๋ ฅํ๋ค.
์ ์ถ๋ ฅ ์์
์ ๋ ฅ
4 2
4 2 3 1
์ถ๋ ฅ
19
๋ด ๋ฌธ์ ํ์ด
import Foundation
let info = readLine()!.split(separator: " ").map({Int(String($0))!})
var card = readLine()!.split(separator: " ").map({Int(String($0))!})
var answer = 0
card.sort(by: >) // ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
for _ in 0..<info[1] {
let tmp = card[card.count-1] + card[card.count-2] // ์ ์ผ ์์ ์ ๋ ๊ฐ ๋ํ๊ธฐ
card[card.count-1] = tmp // ๋ํ ์๋ก ๊ฐฑ์
card[card.count-2] = tmp // ๋ํ ์๋ก ๊ฐฑ์
card.sort(by: >) // ํ ๋ฒ์ ๊ฒฐํฉ๋ง๋ค ์๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
}
for i in card { answer += i }
print(answer)
๐ ๊ฒฐํฉ๋ง๋ค ์ ์ผ ์์ ์ ๋ ๊ฐ๋ฅผ ๋ํด์ฃผ๋ ๊ฒ์ด ํต์ฌ์ด๋ค.
- ์์ ์๊ฐ ๋งจ ๋ค๋ก ๊ฐ๋๋ก ์นด๋ ๋ฐฐ์ด์ ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํด์ฃผ์๋ค.
- ํฉ์ฒดํ๋ ๊ฐ์ info[1]๋งํผ for๋ฌธ์ ๋ฐ๋ณตํ๋ค.
- ์นด๋ ๋ฐฐ์ด์์ ๊ฐ์ฅ ์์ ๋งจ ๋ค ๋ ์๋ฅผ ๋ํ ๊ฐ์ tmp์ ๋ํด์ฃผ์๊ณ ,
๋ฐฐ์ด ๋งจ ๋ค์ ๋ ์๋ฆฌ๋ฅผ ๋ํ ๊ฐ์ผ๋ก ๊ฐฑ์ ํด์ฃผ์๋ค. - ํ ๋ฒ์ ํฉ์ฒด๊ฐ ๋๋ ๋๋ง๋ค ์นด๋ ๋ฐฐ์ด์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ๋ค์ ์ ๋ ฌํด์ฃผ์๋ค.
๐ก ํผ๋๋ฐฑ
- ์ง๋ฌธ์ ์ด๋ ค์๋ณด์ด์ง๋ง, ์๊ณ ๋ณด๋ฉด ๊ณ์ ์ ์ผ ์์ ๋ ์๋ฅผ ๊ณจ๋ผ ๋ํด์ฃผ๊ธฐ๋ง ํ๋ฉด ๋๋ ์ฌ์ด ๋ฌธ์ ์๋ค.
๋ฌธ์
'3๏ธโฃ Swift > Problem Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift Algorithm] ์์๋ฃ๊ธฐ BOJ #1965 (0) | 2021.08.28 |
---|---|
[Swift Algorithm] ํ๋ฐฐ BOJ #8980 (0) | 2021.08.22 |
[Swift Algorithm] ๋ฉํฐํญ ์ค์ผ์ค๋ง BOJ #1700 (0) | 2021.08.20 |
[Swift Algorithm] ์ฃผ์ ์ BOJ #13305 (0) | 2021.08.19 |
[Swift Algorithm] ํ๋ฆฐํฐ Programmers(Lv.2) (0) | 2021.08.19 |
๋๊ธ