프로그래머스에서 코딩테스트 문제 중 배열의 평균값을 구하는 문제를 풀었는데 C나 python으로 풀었으면 금방 풀었겠지만 Kotlin 문법과 메소드 용어들을 제대로 몰라서 익숙해지는 데 시간이 좀 필요할 것 같다.
여하튼 아래의 Kotlin 배열을 사용하는 두 문제를 통해서 Kotlin 배열 사용법에 대해서 알아보자
class Solution {
fun solution(num_list: IntArray): IntArray {
val answer = IntArray(num_list.size)
// answer 배열의 초기화를 위해 num_list.size만큼의 크기를 가진 배열 선언
if(num_list.size in 1..1000) {
for(i in num_list.indices) {
if(num_list[i] in 0..1000) {
answer[i] = num_list[num_list.size - 1 - i]
// num_list.size의 .size는 배열의 길이를 나타내기 때문에 인덱스와
// 값이 1 차이가 난다. 따라서 -1 해야 함
}
}
}
return answer
}
}
ㄴ> 여기서 사용된 indices 와 size 의 차이점이 헷갈려서 차이점을 검색해 본 결과
- indices : 컬렉션의 유효한 인덱스 범위를 나타내는 속성, 보통 반복문에 사용된다. (컬렉션의 모든 요소 접근 유용)
- size : 컬렉션의 요소의 개수를 반환하는 속성, 리스트와 배열 모두 사용할 수 있다.
class Solution {
fun solution(numbers: IntArray): Double {
var answer: Double = 0.0
var total: Double = 0.0
if(numbers.size in 1..100) {
for(i in numbers.indices) {
if(numbers[i] in 1..1000)
total += numbers[i]
}
answer = total/numbers.size
}
return answer
}
}
[ Kotlin 문법 간단 정리 (배열) ]
- 배열 선언 방법
// 기본 선언
val array1: IntArray = intArray(1, 2, 3)
// Array 생성자 사용
val array2 = Array(5) { }
// 배열의 크기만 정하여 선언하기
val arrayList = ArrayList<int>(n)
class Solution {
fun solution(num_list: IntArray): IntArray {
val answer = IntArray(num_list.size)
// answer 배열의 초기화를 위해 num_list.size만큼의 크기를 가진 배열 선언
또는 배열 변수의 크기가 사용자의 입력에 따라 다른 경우 (ex: 함수의 매개변수로 배열의 원소를 받을 때) 배열 변수를 선언할 때 애초에 num_list.size 와 같은 형태로 초기화를 할 수 있다. (초기화하지 않으면 ArrayIndexOutOfBoundsException 에러가 뜸)
- indices 와 size 의 차이점과 쓰임
- indices : 컬렉션의 유효한 인덱스 범위를 나타내는 속성, 보통 반복문에 사용된다 (컬렉션의 모든 요소 접근 유용)
- size : 컬렉션의 요소의 개수를 반환하는 속성, 리스트와 배열 모두 사용할 수 있다.
'Kotlin 문법 및 연습 문제' 카테고리의 다른 글
(Kotlin) 나누어 떨어지는 숫자 (0) | 2024.03.07 |
---|---|
(Kotlin) 정수 제곱근 판별 (0) | 2024.03.05 |
(Kotlin) 하샤드 수 구하기 (0) | 2024.03.05 |
(Kotlin) 프로그래머스 문제 설명의 제한 조건 의미 (0) | 2024.03.05 |
(Kotlin) 자연수를 뒤집어 배열로 만들기 (0) | 2024.03.04 |