문제 링크
https://www.acmicpc.net/problem/2562
list
list에는 두 가지 종류가 있다.
mutable list와 immutable list이다.
mutable list는 변경이 가능하다.mutableListOf<Int>()
로 사용한다.
immutable list는listOf
로 사용한다.
MutableList
이것은 인터페이스로, 무언가를 오버라이딩하고 싶을 때 사용할 수 있다. 더 자세한 내용은 코틀린 문법 공부를 진행하면서 배우려고 한다.
for
for문은 java와 다르게 for (i in 0..<9)
다음과 같이 사용 가능하다.
내 문제 풀이
import java.io.BufferedReader
import java.io.InputStreamReader
fun main() {
val br = BufferedReader(InputStreamReader(System.`in`))
val numList = mutableListOf<Int>()
for (i in 0..<9) {
numList.add(br.readLine().toInt())
}
var max = 0
for (i in 0..<9) {
if (numList[max] < numList[i])
max = i
}
println(numList[max])
println(max + 1)
}
gpt 문제 풀이
import java.io.BufferedReader
import java.io.InputStreamReader
fun main() {
val br = BufferedReader(InputStreamReader(System.`in`))
val numList = mutableListOf<Int>()
// 9개의 정수를 입력받아 리스트에 저장
repeat(9) {
numList.add(br.readLine().toInt())
}
// 최대값과 그 인덱스를 찾기
var maxIndex = 0
for (i in 1 until 9) {
if (numList[maxIndex] < numList[i]) {
maxIndex = i
}
}
// 최대값과 그 인덱스 + 1을 출력
println(numList[maxIndex])
println(maxIndex + 1)
}
코드 분석
repeat
for문 대신에 repeat(9)를 사용하여 더 직관적으로 반복횟수를 나타냈다. 앞으로 for문 대신에 반복은 repeat함수를 사용하는 것이 더 편할 것 같다.
for문 수정
for (i in 1 until 9)
1부터 9까지를 이렇게 표현했는데 모호하고 부정확한 표현이라고 생각된다.for문은 내가 생각한대로 하는게 맞다고 생각했다.
최적의 코드
import java.io.BufferedReader
import java.io.InputStreamReader
fun main() {
val br = BufferedReader(InputStreamReader(System.`in`))
val numList = mutableListOf<Int>()
// 9개의 정수를 입력받아 리스트에 저장
repeat(9) {
numList.add(br.readLine().toInt())
}
// 최대값과 그 인덱스를 찾기
var maxIndex = 0
for (i in 0..< 9) {
if (numList[maxIndex] < numList[i]) {
maxIndex = i
}
}
// 최대값과 그 인덱스 + 1을 출력
println(numList[maxIndex])
println(maxIndex + 1)
}
'코딩테스트 > BaekJoon' 카테고리의 다른 글
[kotlin] BOJ 1152 단어의 개수 (1) | 2024.10.23 |
---|---|
[kotlin] BOJ 10250 ACM 호텔 (1) | 2024.10.23 |
[백준]파이썬: 오븐시계(2525번) (0) | 2022.12.06 |
[백준]파이썬: 두 수 비교하기(1330번) (0) | 2022.12.06 |
[백준] 파이썬: 고양이(10171번) (0) | 2022.12.06 |