[프로그래머스] 홀짝에 따라 다른 값 반환하기

devel_liz·4일 전
1

코딩테스트

목록 보기
1/8

🗒 문제


📝 나의 문제 풀이

class Solution {
    fun solution(n: Int): Int {
    //짝수, 홀수 구분
        //짝수이면 짝수 0~n까지의 값 중 짝수만 추린다
        // 나온 짝수의 총합을 구한다
        //홀수라면 홀수 0~n까지의 값 중 홀수만 추린다
        // 나온 홀수의 제곱한 값의 총합을 구한다.
        var result = 0
        if(n % 2 != 0){
            for(value in 1..n){
                if(value % 2 != 0){
                    result += value
                }
            }
        }else{
              for(value in 1..n){
                if(value % 2 == 0){
                    result += value * value
                }
            }
        }
        return result
    }
}

📝 다른 사람 문제풀이

import kotlin.math.pow

class Solution {
    fun solution(n: Int) = if (n % 2 != 0) (1..n step 2).sum() else (2..n step 2).map { it.toDouble().pow(2.0) }.sum().toInt()
}
class Solution {
    fun solution(n: Int): Int {
        return if(n % 2 == 0) {
            (n downTo 1 step 2).sumOf { it * it }
        } else {
            (n downTo 1 step 2).sum()
        }
    }
}

🖊 내 문제 풀이에 필요했던 것들

  • for문
    • 범위 순회할 때 사용된다.
    • for(value in 1..n){} 1부터 n까지 중괄호 안에 코드를 반복하겠다는 뜻이다.
  • % 연산자
    • 두 수를 나눈 후 나머지 값을 반환한다.
    • n % 2 == 0은 n을 2로 나누어 반환값이 0일 경우 짝수, 0이 아닐 경우 홀수이다.

🖊 남 문제풀이에 사용된 것들

  • step
    • step은 kotlin 범위(Range) 객체에 대해 일정한 간격으로 순회할 수 있도록 도와주는 함수이다. step은 범위를 반복할 때 간격(step size)을 지정할 수 있게 해준다. 예를 들어, 1..10 step 2는 1부터 10까지의 범위에서 2씩 증가하는 숫자를 생성한다.
      (1..10 step 2) // 1, 3, 5, 7, 9
  • downTo
    • downTo는 Kotlin에서 숫자를 감소시키며 반복할 때 사용하는 구문입니다. 예를 들어, n downTo 1 step 2는 n에서부터 1까지 2씩 감소하는 숫자들을 생성합니다. 즉, n, n-2, n-4, ... 이렇게 진행됩니다.
      val n = 10
      println((n downTo 1 step 2).toList())  // 출력: [10, 8, 6, 4, 2]
  • sumOf

    • sumOf는 각 원소에 대해 특정 연산을 수행한 후 그 결과들의 합을 구하는 함수입니다. 예를 들어, 숫자들의 제곱을 합하고 싶다면 sumOf를 사용하여 각 숫자를 제곱한 후 그 합을 구할 수 있습니다.
      val numbers = listOf(1, 2, 3)
      println(numbers.sumOf { it * it })  // 출력: 1*1 + 2*2 + 3*3 = 14
  • sum

    • sum은 컬렉션(리스트, 배열 등) 안에 있는 숫자들의 합을 구하는 함수입니다. 예를 들어, [1, 2, 3]이라는 리스트가 있을 때, sum()을 호출하면 1 + 2 + 3 = 6이 반환됩니다.
      val numbers = listOf(1, 2, 3)
      println(numbers.sum())  // 출력: 6
profile
Android zizon

0개의 댓글