[TIL]짝수의 합

Anna·2024년 6월 4일

코딩테스트

목록 보기
4/28
post-thumbnail

짝수의 합

문제 풀이

// 시도1 대실패!!!!!!! 
class Solution 
{
	fun solution(n: Int): Int 
    {
        var answer : Int = 0
        // 반복문 까먹음
        return if (n % 2 == 0)   // if 앞에 return 사용 
        {
            answer += n
        } else 0
    }
}

//시도2 대성공!!!!!!
class Solution 
{
    fun solution(n: Int): Int 
    {
        var answer = 0
        for (i in 1..n)
        {
            if (i % 2 == 0)
            {
                answer += i
            } else 0
        }
        return answer
    }
}

for (i in 1..n)
n를 반복 가능한 무언가로 바꾼다. 1..n 1부터 n까지 반복한다.

return 와 if
return은 함수의 실행을 즉시 종료하고 값을 반환한다. 따라서 returnif 문 앞에 오면, 조건에 따라 반환 여부를 결정하는 것이 아니라 즉시 반환하게 되어 루프의 실행이 중단된다.

for (i in 1..n) 
{
    if (i % 2 == 0) 
    {
        return i  // 이 경우 첫 번째 짝수를 만나면 함수가 종료되고 값을 반환합니다.
    }
}
//만약 이 코드를 원하지 않으면 return문을 루프 밖으로 빼야한다.
for (i in 1..n) 
{
    if (i % 2 == 0)
}
return i 

return와 when
if와 달리 when는 구문 자체가 결과를 반환하는 표현식으로 사용될 수 있다.
아래 코드처럼, when 구문이 angle를 평가하고 해당하는 조건에 맞는 값을 반환한다. when블록이 끝난 후에 최종적으로 반환된 값을 return이 반환하게 된다.

return when(angle) 
{
    in 1..89 -> 1
    90 -> 2
    in 91..179 -> 3
    180 -> 4
    else -> 0  
}

0개의 댓글