하나는 최대값들을 저장할 배열, 하나는 이 최대값이 배열의 몇 번째 행에 있는지 저장할 용도이다.
총 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}")
}