CodingTest/Kotlin으로 푼 코딩 테스트

[Kotlin / 코딩테스트] 프로그래머스 - 두 개 뽑아서 더하기

마볼링 2024. 3. 28. 21:24

1. 문제

 

 

2. 코드

2-1. 첫번째 코드

class Solution {
    fun solution(numbers: IntArray): IntArray {
        val result: MutableList<Int> = mutableListOf()
        
        numbers.indices.forEach { i ->
            numbers.indices.forEach { j ->
                if (i != j) {
                    result.add(numbers[i] + numbers[j])
                }
            }
        }
        return result.distinct().sorted().toIntArray()
    }
}
  • numbers의 indices로 인덱스 참고
  • 이중 for문에 i != j 일때 더해서 저장
  • distinct로 중복제거, sorted로 정렬

 

2-2. 두번째 코드

class Solution {
    fun solution(numbers: IntArray): IntArray {
        // 각 숫자 쌍의 합을 저장할 리스트 생성
        return numbers.indices.flatMap { i ->
            // numbers 배열의 인덱스를 반복
            numbers.indices
                // 현재 인덱스와 같지 않은 인덱스만 필터링
                .filter { j -> i != j }
                // 현재 숫자와 다른 숫자의 합을 계산하여 리스트에 추가
                .map { j -> numbers[i] + numbers[j] }
        }
        // 중복된 합 제거 후 정렬하여 IntArray로 변환하여 반환
        .distinct().sorted().toIntArray()
    }
}
  • 한 줄로 해결!