본문 바로가기

알고리즘

[ 알고리즘 / kotlin ] 알고리즘 문제에 도움이 되는 코틀린 문법 1

정말 기초 문법이기에 코틀린 언어가 익숙하지 않으신 분들에게 유용할 것 같습니다

 

[ when ] : 자바에서 switch문과 유사합니다

 

val price = when(foodName){ 
           FOOD_CREAM_PASTA -> 13000 
           FOOD_STEAK -> 25000 
            FOOD_PIZZA -> 15000 
            else ->0 
        } 
println("$foodName 's price ${price}") 

 

결과

pasta 's price 13000 

 

 

 

[ for ] : for문 안에 들어갈 인덱스는 변수명을 붙히지 않아도 됩니다.

 

- for(i in 0..9) i가 0부터 9까지 총 10번 반복
- for(i in 0..9 step 3) i가 0부터 9까지 3씩 증가
- for(i in 9 downTo 0) i가 9부터 0까지 감소
- for(i in 'a'..'e') i가 a부터 e까지 증가
- for( i in 1 until 100) i가 1부터 100미만 까지 

 

// list = [1,2,3,4,5]
for( i in list){ 
       print(i ) 
   }
   

 

결과

1 2 3 4 5 

// list = [1,2,3,4,5]
for( i in list.indices) {
	println(list[i] ) 
}

 

결과

1 2 3 4 5

 

[ forEach ]: 리스트 요소를 하나씩 꺼내 반복적 처리

 fun main() {
        val numbers = arrayOf(1, 2, 3, 4, 5)
        numbers.forEach { i ->
            println(i)
        }
        numbers.forEach {
            println(it)
        }
    }


결과  
1
2
3
4
5
1
2
3
4
5

 

[ map() ] : 컬렉션 내 인자를 변환하여 반환할 때 사용

 val foods = listOf("치킨", "쭈꾸미", "떡볶이")
    foods.map { "음식의 이름은 ? = " + it }
        .forEach { println(it) }


결과
동물의 이름은 ? = 치킨 
동물의 이름은 ? = 쭈꾸미
동물의 이름은 ? = 떡볶이

 

[ mapIndexed() ] : 컬렉션에 포함된 인자의 인덱스 값을 변환하여 사용

 

val numbers = 0..10

    numbers.mapIndexed { index, number -> index * number }
        .forEach { println(it) }

 

결과

0

1

4

9

.

.

[ filter() ]: 리스트내에 인자들 중 조건에 일치하는 인자만 필터링

val foods = listOf("치킨", "쭈꾸미", "떡볶이") 

    foods.filter { foods -> food.length > 2 } 
        .forEach { println(it) } 

 

결과


쭈꾸미

떡볶이

 

[ count() ]: 조건식을 추가하여 자료의 개수 반환 가능

 

val foods = listOf("치킨", "쭈꾸미", "떡볶이")

    println(foods.count { food -> food.length > 2 })

 

결과

2

반응형