class Solution {
fun solution(n: Int, control: String): Int {
var answer = n
for(value in control){
when(value){
'w' -> answer += 1
's' -> answer -= 1
'd' -> answer += 10
'a' -> answer -= 10
else -> 0
}
}
return answer
}
}
class Solution {
fun solution(n: Int, control: String): Int {
val map = mapOf('w' to 1, 's' to -1, 'd' to 10, 'a' to -10)
return control.fold(n) { acc, w -> acc + map.getValue(w) }
}
}
for문
val str = "abcd"
for (char in str) {
println(char) // 'a', 'b', 'c', 'd' 순서대로 출력
}
when문
when (expression) {
value1 -> { // value1과 비교
// 조건이 맞으면 실행할 코드
}
value2 -> { // value2와 비교
// 조건이 맞으면 실행할 코드
}
else -> { // 위의 모든 조건이 만족하지 않으면 실행할 코드
// else는 선택적
}
}
복합 할당 연산자(+=, -=)
var num = 10
num += 5 // num = num + 5
println(num) // 15
num -= 3 // num = num - 3
println(num) // 12
mapOf
to
val pair = 'x' to 42
println(pair) // (x, 42)
fold
누적 계산을 하는 함수입니다. 주로 함수형 프로그래밍에서 사용되며, 리스트나 컬렉션의 모든 원소를 특정한 방식으로 하나로 합치는 작업을 합니다.
초기값 (Initial value): 누적 계산을 시작할 때 사용하는 값입니다. 예를 들어, 합계를 구하려면 0이 초기값이 됩니다.
합치는 함수 (Combining function): 리스트의 각 원소를 누적값과 결합하는 함수입니다. 예를 들어, 두 값을 더하는 함수가 될 수 있습니다.
fold를 사용하여 합계를 구해봅시다.
val numbers = listOf(1, 2, 3, 4, 5)
val sum = numbers.fold(0) { acc, number ->
acc + number
}
println(sum) // 결과: 15
fold를 사용하여 곱을 구해봅시다.
val numbers = listOf(1, 2, 3, 4, 5)
// fold를 사용하여 곱을 구해봅시다.
val product = numbers.fold(1) { acc, number ->
acc * number
}
println(product) // 결과: 120
val map = mapOf('x' to 42)
println(map.getValue('x')) // 42
// println(map.getValue('y')) // 예외 발생: Key y is missing