https://www.acmicpc.net/problem/2566
풀이
더보기
두 개의 배열을 준비한다.
하나는 최대값들을 저장할 배열, 하나는 이 최대값이 배열의 몇 번째 행에 있는지 저장할 용도이다.
총 9줄이고, 배열의 인덱스에 꽂아넣어야 하므로 0~8까지 반복문을 반복한다.
반복문의 반복마다 9개의 숫지가 있는 문자열을 받아와서 split(" ").map{ it.toInt() }를 통해 정수배열로 전환한다.
전환된 정수배열.max()를 하여 최댓값을 찾아내고. indexOf(최댓값)를 통해 배열 내의 최댓값이 속한 인덱스를 인덱스 배열에 저장한다. 마찬가지로 최댓값도 최댓값 배열에 저장한다.
배열이 종료되었으면 최댓값 배열중에서도 제일 최댓값을 찾는다.
그리고 이 최댓값에서 몇 번째 인덱스인지 미리 찾아둔다. 이것이 행의 인덱스이다.
최댓값에서 구한 인덱스로 인덱스 배열의 위치를 지정하면 그 행의 최댓값이 어디에 위치해있었는지 그 열이 등장한다. 이것이 열의 인덱스이다.
이 때 이것을 프린트 할때는 + 1씩 해주어야 한다. 리턴할 때는 인간의 숫자 방식으로 리턴해줘야 하기 때문이다.
이를 코드로 보면,
fun main(args: Array<String>) {
question2566()
}
fun question2566() {
var maxList = mutableListOf<Int>()
var indexList = mutableListOf<Int>()
for(i in 0 .. 8) {
var items = readLine()!!.split(" ").map { it.toInt() }
var max = items.max()
maxList.add(i, max)
indexList.add(i, items.indexOf(max))
}
var max = maxList.max()
var index = maxList.indexOf(max)
println(max)
println("${index + 1} ${indexList[index] + 1}")
}
반응형
'스터디(beakjoon)' 카테고리의 다른 글
Kotlin] 백준 10798번 문제풀이 (0) | 2023.06.13 |
---|---|
Kotlin] 백준 2738번 문제풀이 (0) | 2023.06.13 |
Kotlin] 백준 25206번 문제풀이 (0) | 2023.06.12 |
Kotlin] 백준 1316번 문제풀이 (1) | 2023.06.09 |
Kotlin] 백준 2941번 문제풀이 (1) | 2023.06.09 |