์๋ชป๋ ๋ฒ๋ธ์ ๋ ฌ(30010๋ฒ)
Silver 5
#์ ๋ ํน #ํด ๊ตฌ์ฑํ๊ธฐ
https://www.acmicpc.net/problem/30010
๋ฌธ์ ๋ด์ฉ
๋ฌธ์ ์ ๊ทผ
์ ๋ฌธ์ ์ ์๋ชป๋ ๋ฐฉ์์ผ๋ก ๊ตฌํ๋ ๋ฒ๋ธ ์ ๋ ฌ ํจ์๊ฐ ์๋ค.
์ด ํจ์๋ฅผ ์ด์ฉํด ๋ฒ๋ธ ์ ๋ ฌ์ ํ์ ๋, ์ฌ๋ฐ๋ฅด๊ฒ ์ ๋ ฌ๋์ง ์๋ ๋ฆฌ์คํธ๋ฅผ ์ถ๋ ฅํ๋ฉด ๋๋ค.
๋จผ์ ๋ฒ๋ธ ์ ๋ ฌ์ด ์ด๋ป๊ฒ ์ด๋ฃจ์ด์ง๋์ง ์์์ผ ํ๋ค.
๋ฒ๋ธ ์ ๋ ฌ์ ํ์ฌ ์์น์์ ์์ ์ ์์ ๊ฐ์ ํ์ธํด์ ์์ ๋ณด๋ค ๊ฐ์ด ์์ ๊ฒฝ์ฐ ์๋ก์ ๊ฐ์ ๊ตํํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํ์ ํ๋ค.
๋ฌผ๋ก 1๋ฒ์ ์ฌ์ดํด๋ก๋ ์ ๋ ฌ์ด ๋ฐ๋ก ์ ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ ์ ๋ ฌํ List์ ํฌ๊ธฐ๋งํผ ๋ฐ๋ณตํด ์ฃผ๋ฉด ์ ๋ ฌ์ ๋ง์น ์ ์๋ค.
size๊ฐ 5์ธ List๋ฅผ 4๋ฒ์ ์ฌ์ดํด์ ๋์ ์ ๋ ฌ์ ์๋ฃํ ๋ถ๋ถ์ด๋ค.
ํ์ฌ ์์ ์ ์์ ๊ฐ์ ํ์ธํ๊ณ ์๊ธฐ ๋๋ฌธ์ ์์ ๊ฐ์ด ํ์ฌ ์์ ๋ณด๋ค ๋ ์์ผ๋ฉด ๊ฐ์ ์๋ก ๊ตํํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํํ๋ค.
์์ธํ ์ค๋ช ์ ์๋์ ๋ธ๋ก๊ทธ ๊ธ์ ์ฐธ๊ณ ํด์ ๋ฌธ์ ์ ์ฝ๋๊ฐ ์๋ชป๋ ์์ธ์ ๋ถ์ํด ๋ณด์.
https://gmlwjd9405.github.io/2018/05/06/algorithm-bubble-sort.html
๋ฌธ์ ์ ์ฝ๋๋ ๊ฐ ํ์ธ์ ๋ง์ง๋ง index๋ถํฐ 0๋ฒ์งธ index๊น์ง ๋ฐ๋ณตํ๊ณ ์๋ค.
๋ด๋ถ ๋ฐ๋ณต๋ฌธ์์ ์ด๋ฏธ ์ ๋ ฌ๋ ๊ฐ์ธ i๋ฒ์งธ index ์ด์ ๋ถํฐ ๊ฒ์ํ๋ ๊ฒ๋ ์ ๊ตฌํํ๋ค. ์์ ๊ฐ์ด ๋ ์์ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฅผ ๊ตํํ๋ ๊ฒ๋ ๋ฌธ์ ๊ฐ ์๋ค.
๋ฌธ์ ์ ์ฝ๋๋ฅผ ์์ธํ ์ดํด๋ณด๋ฉด ๋ฌธ์ ์ ์ ์ฐพ์ ์ ์์ ๊ฒ์ด๋ค. ์ฌ์ดํด์ ์์๋ฅผ ์ญ์์ผ๋ก ๋ณด๊ณ ์๋ ๊ฑด ์๊ด์๋ค.
ํ์ง๋ง ์ฌ์ดํด์ ์ญ์์ผ๋ก ๋ณด๊ณ ์๋๋ฐ ์์ชฝ ๋ฐ๋ณต๋ฌธ์ ๋ง์ง๋ง ๊ฐ์ ์ ์ธ์ํค๊ณ ์๋ค.
์ฌ์ดํด์ด ์ญ์์ผ๋ก ๋๊ณ ์์ผ๋ฉด ๋ด๋ถ์ ๋ฐ๋ณต๋ฌธ๋ ๋ง์ง๋ง ๊ฐ์ด ์๋ ์ฒซ ๋ฒ์งธ ๊ฐ๋ถํฐ ์ ์ธ์์ผฐ์ด์ผ ์ ๋ ฌ์ด ์ฌ๋ฐ๋ฅด๊ฒ ๋์ํ๋ค.
N = 5์ผ ๋
5 4 3 2 1
1 5 4 3 2 // i = 4, j = 3
1 3 5 4 2 // i = 3, j = 2
1 3 5 4 2 // i = 2, j = 1
1 3 5 4 2 // i = 1, j = 0
์๋ N์ด 5์ผ ๋ ๋ฐ๋ณต์ ๋ฐ๋ฅธ i๊ณผ j๊ฐ๊ณผ ์ ๋ ฌ ๊ฒฐ๊ณผ๋ฅผ ๋์ดํ ๊ฒฐ๊ณผ์ด๋ค.
j์ ๊ฐ์ i์ ๊ฐ์ ์ํด ๋ณ๊ฒฝ๋๋ค. ์์ชฝ ๋ฐ๋ณต์ j๋ฒ์งธ index๋ถํฐ 0๊น์ง ๋ฐ๋ณต๋๋ค.
์ฒซ ๋ฒ์งธ ์ฌ์ดํด์์๋ 3๋ฒ์งธ index๋ถํฐ 0๋ฒ์งธ index๊น์ง ํ์ธํ๋ค. ์ฒซ ์ฌ์ดํด์์๋ ๋ด๋ถ ๋ฐ๋ณต๋ฌธ ๋ด๋ถ์์ j + 1์ ์ด์ฉํด ๋ง์ง๋ง์ธ 4๋ฒ์งธ index๊น์ง ํ์ธํ์ผ๋ฏ๋ก ๋ฌธ์ ๊ฐ ์๋ค.
๋ ๋ฒ์งธ ์ฌ์ดํด์์๋ j๊ฐ 2์ด๊ธฐ ๋๋ฌธ์ j + 1์ ํด๋ 3๋ฒ์งธ index๊น์ง๋ฐ์ ๋ณผ ์ ์๋ค. ํ์ฌ ์ ๋ ฌ์ ์์ ๊ฐ์ ์์ผ๋ก ๋ณด๋ด๋ ์ ๋ ฌ์ ํ๊ณ ์๋๋ฐ ๋ง์ง๋ง index๋ฅผ ์ ์ธ์ํค๊ณ ์์ผ๋ ์ ๋ ฌ์ด ์ ๋๋ก ๋ ๋ฆฌ๊ฐ ์๋ค.
์ด๋ก ์ธํด ์ ์ฝ๋์ ๋ฐ๋ก๋ ๊ฐ์ฅ ํฐ ๊ฐ์ด 0๋ฒ์งธ index๋ก ์ฌ ๊ฒฝ์ฐ, ์ฌ์ดํด์ ๋๋ฉด์ 1์นธ์ฉ ๋ค๋ก ์ด๋ํ๋ค๊ณ ํด๋ ์ ์ธ๋ ๋ถ๋ถ ๋๋ฌธ์ ์ ์ผ ํฐ ๊ฐ์ด ๋ฆฌ์คํธ์ ๋งจ ๋ค๋ก ์ด๋ํ์ง ๋ชปํ๋ค. ์์ N = 5์ผ ๋์ ์์ ๋ ๊ทธ๋ ์ง ์์๊ฐ?
๋ฌธ์ ํด๊ฒฐ ์ฝ๋
import java.io.BufferedReader
import java.io.InputStreamReader
fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
val size = readLine().toInt()
val result = StringBuilder()
for (i in size downTo 1) {
result.append("$i ")
}
println(result)
}
๋ฌธ์ ํ์ด
๋ฌธ์ ์ ๊ทผ์์ ํ์ ํ ๋ฌธ์ ๋ก๋ 0๋ฒ์งธ index์ ์ ์ผ ํฐ ๊ฐ์ด ๋ค์ด์ค๊ฒ ๋๋ฉด ๋ฌธ์ ์ ์ฝ๋๋ก๋ ์ ๋ ฌ์ด ๋ถ๊ฐ๋ฅํ๋ค๋ ์ฌ์ค์ ์๊ฒ ๋์์ผ๋, size์ ์ญ์์ผ๋ก ๊ฐ์ ์ถ๋ ฅํด ์ฃผ๋ฉด ์ ๋ต์ด ๋๋ค.
๋ฌธ์ ํด๊ฒฐ ๊ณผ์
๋ฒ๋ธ ์ ๋ ฌ ์ดํด๋ ํ ์คํธ.
๋ฒ๋ธ ์ ๋ ฌ์ด ์ด๋ป๊ฒ ๋์ํ๋์ง ํ์ ํด ๋ฌธ์ ์ฝ๋์ ๋ฌธ์ ์ ์ ํ์ ํด ์ฌ๋ฐ๋ฅธ ๋ฐ๋ก๋ฅผ ์๊ฐํด์ผ ํ๋ค.
๋๋ ๋ฒ๋ธ ์ ๋ ฌ์ ๊ฐ๋ ์ ์ฐพ์๋ณด๊ณ ๋์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
๊ทธ๋ฅ ๋ฌธ์ ์ ์ ํ์ ํ์ง ์๊ณ ๋ฆฌ์คํธ์ ๊ฐ์ shuffle ํด์ ๋๋ค ํ๊ฒ ๊ฐ์ ๋ค์ด๊ฐ๊ฒ ํ ํ, ์ ๋ ฌ์ด ์ ๋๋ก ๋์ง ์๋ ๋ฆฌ์คํธ๋ฅผ ์ถ๋ ฅํด๋ ๋๋ค. ํ์ง๋ง ๋ฒ๋ธ ์ ๋ ฌ์ ํน์ง์ ์ ํ์ ํด์ ๋ฌธ์ ์ ์ ์ฐพ์์ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ด ๊ณต๋ถ์ ๋ ๋์์ด ๋ ๊ฒ์ด๋ค.
'๐ฏ | ๋ฐฑ์ค > ๐ | Silver' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Kotlin, S3] ๋ฐฑ์ค 1004๋ฒ ์ด๋ฆฐ ์์ (0) | 2024.08.19 |
---|---|
[Kotlin, S3] ๋ฐฑ์ค 2346๋ฒ ํ์ ํฐ๋จ๋ฆฌ๊ธฐ (0) | 2024.08.19 |
[Kotlin, S5] ๋ฐฑ์ค 1813๋ฒ ๋ ผ๋ฆฌํ ๊ต์ (0) | 2024.08.16 |
[Kotlin, S3] ๋ฐฑ์ค 15649๋ฒ N๊ณผ M(1) (0) | 2024.08.13 |
[Kotlin, S1] ๋ฐฑ์ค 11403๋ฒ ๊ฒฝ๋ก ์ฐพ๊ธฐ (0) | 2024.08.11 |