문제
풀이
for문과 배열을 활용해 풀이하였다.
먼저 사람을 자리에 배치하기위한 빈 배열을 선언한다. 배열에는 1번부터 순서대로 배치하는데 0의 개수를 세어 위치를 정해주면 된다. 순서대로 배치하기 때문에 0의 개수는 자신보다 큰 사람이 위치할 수 있는 자리의 숫자이다. 이 숫자가 입력 받은 숫자와 같다면 현재 번호를 배치할 수 있는 것이다. 만약 자리에 이미 누군가 있다면 그 뒤에 배치해준다.
코드
fun main() {
val br = System.`in`.bufferedReader()
val bw = System.out.bufferedWriter()
val num = br.readLine().toInt()
val arr = br.readLine().split(' ').map { it.toInt() }
val ans = IntArray(num)
for(i in 0 until num) {
var cnt = 0
for(j in 0 until num) {
if(ans[j] == 0) {
if(cnt == arr[i]) {
if(ans[j] == 0) {
ans[j] = i + 1
break
}
} else {
cnt++
}
}
}
}
ans.forEach {
bw.append("$it ")
}
bw.write("")
bw.flush()
bw.close()
br.close()
}
'알고리즘 > Baekjoon' 카테고리의 다른 글
[백준] 2573번: 빙산 - Kotlin[코틀린] (0) | 2024.01.03 |
---|---|
[백준] 1431번: 시리얼 번호 - Kotlin[코틀린] (0) | 2024.01.02 |
[백준] 10826번: 피보나치 수 4 - Kotlin[코틀린] (1) | 2023.12.28 |
[백준] 2578번: 빙고 - Kotlin[코틀린] (0) | 2023.12.27 |
[백준] 1743번: 음식물 피하기 - Kotlin[코틀린] (0) | 2023.12.21 |