[A&I Code Camp] Day4

Hood·2024년 9월 11일

A&I Code Camp

목록 보기
4/38
post-thumbnail

✍   Kotlin을 사용한 프로그래머스 Lv. 0 문제 풀기

소속중인 A&I 동아리에서 코딩역량을 강화하고자
코딩캠프를 진행하여 주말을 제외한 모든 날에 하루 5문제씩
프로그래머스 Lv.0 문제를 풀어가며 작성한 포스트입니다.
해당 포스트는 kotlin을 기반으로 작성합니다.


짝수 홀수 개수

짝수 홀수 갯수는 대표적으로 n % 2 == 0 이라는 조건을 통해 얻을 수 있다.
그래서 answer의 intArray 안에 0, 0을 넣고
for문을 통해 list의 값에 따라 짝수와 홀수 갯수만큼 +1을 하는 식으로 풀었다.

class Solution {
    fun solution(num_list: IntArray): IntArray {
      var answer: IntArray = intArrayOf(0, 0)
      for(x in num_list){
          if (x % 2 == 0) answer[0] += 1
          else answer[1] += 1
      }
      return answer
      }
}

점의 위치 구하기

이것도 when문을 통해 조건을 구하는 방법이 있었는데
일단 변수 answer가 점의 위치에 맞게 값이 변하도록 풀었다.

class Solution {
    fun solution(dot: IntArray): Int {
      var answer: Int = 0
      if (dot[0] > 0 && dot[1] > 0) answer = 1
          else if(dot[0] < 0 && dot[1] > 0) answer = 2
          else if (dot[0] < 0 && dot[1] < 0) answer = 3
          else answer = 4
      return answer
    }
}

배열의 평균값

내가 생각한 것은 answer안에 리스트 값을 모두 더하고 그것을 .size를 통해 평균을 구했는데
내장 함수로 .average()가 있다는 것을 알았다.

class Solution {
    fun solution(numbers: IntArray): Double {
        var answer = 0.0
        for (x in numbers){
            answer += x
        }
        return answer / numbers.size
    }
}
//모범 답
class Solution {
    fun solution(numbers: IntArray) = numbers.average()
}

중앙값 구하기

이번 문제는 고르지 못한 리스트를 .sort를 통해 정렬을 해주고
중앙 값을 구하기 위해 size에 2를 나눠주었다 그래서 중앙을 리턴하도록 하였다.

class Solution {
    fun solution(array: IntArray) : Int {
        array.sort()
        val size = array.size/2
        return array[size]
    }
}

짝수는 싫어요

이 문제는 숫자 n 전 만큼의 홀수를 모두 구하는 문제인데
반복문을 통해 1부터 n 만큼 step을 통해 홀수만 뽑아주었고 그것을 배열에 더해주는 식으로 풀었는데
.filter를 통해 쉽게 풀 수 있다는 사실을 알았다.

class Solution {
    fun solution(n: Int): IntArray {
        var answer: IntArray = intArrayOf()
        for (x in 1..n step 2){
            answer += x
        }
        return answer
    }
}
//모범 답
class Solution {
    fun solution(n: Int) = (1..n).filter{ it % 2 == 1 }
}

📌결론

배열을 많이 다루고 있는데 내가 생각한대로 굴러가지 않는 배열이다..

profile
달을 향해 쏴라, 빗나가도 별이 될 테니 👊

0개의 댓글