Study with me/프로그래머스 L0 마스터하기

프로그래머스 - L0 배열의길이에따라다른연산하기

외계나무 2023. 12. 11. 14:00

프로그래머스 - level 0 배열의 길이에 따라 다른 연산하기

class Solution {
    public int[] solution(int[] arr, int n) {
        int[] answer = new int[arr.length];
        if(arr.length % 2 == 0) {
            for(int i=0; i<arr.length; i++) {
                if (i%2 == 0)
                    answer[i] = arr[i];
                else
                    answer[i] = arr[i]+n;
            }
        } else {
            for(int i=0; i<arr.length; i++) {
                if (i%2 == 0)
                    answer[i] = arr[i]+n;
                else
                    answer[i] = arr[i];
            }
        }
        return answer;
    }
}

 

▼ for문 안에 삼항 연산자를 넣은... 신기한 풀이... 심지어 그걸로 짝 홀 가려버리는... 

class Solution {
    public int[] solution(int[] arr, int n) {
        for(int idx=arr.length%2==0?1:0; idx<arr.length; idx+=2) {
            arr[idx]+=n;
        }

        return arr;
    }
}

 

  그리고 언제봐도 신기한 stream 풀이... 하...

import java.util.stream.IntStream;

class Solution {
    public int[] solution(int[] arr, int n) {
        return IntStream.range(0, arr.length)
        		.map(i -> arr[i] + (i % 2 == (arr.length % 2 == 0 ? 1 : 0) ? n : 0))
            		.toArray();
    }
}

 

나도 저렇게 풀어보고 싶다 → 근데 문제 보면 우왕좌왕 하다가 걍 아는 방법으로 풀고 있음... 풀기 전에 고민을 더 해봅시다...