Contents

조건에 맞게 수열 변환하기 1, 조건에 따른 배열 제어하는 방법에 대하여(with.Java)

   Oct 7, 2023     2 min read

조건에 맞게 수열 변환하기에 대하여 알아본 글입니다.

코딩 테스트 문제를 풀며, 풀었던 문제에 대한 회고와 다른 풀이 방법을 알아보며, 알아가고자 합니다.

문제에 대해 먼저 알아보겠습니다.

문제

정수 배열 arr가 주어집니다.

arr의 각 원소에 대해 값이 50보다 크거나 같은 짝수라면 2로 나누고, 50보다 작은 홀수라면 2를 곱합니다.

그 결과인 정수 배열을 return 하는 solution 함수를 완성해 주세요.

입출력 예시
arrresult
[1, 2, 3, 100, 99, 98][2, 2, 6, 50, 99, 49]

문제에 대한 나의 풀이

class Solution {
    public int[] solution(int[] arr) {
        int[] answer = new int[arr.length];
        for(int i = 0; i < arr.length; i++){
            if(arr[i] >= 50 && arr[i] % 2 == 0){
                answer[i] = arr[i] / 2;
            }else if(arr[i] < 50 && arr[i] % 2 != 0){
                answer[i] = arr[i] * 2;
            }else{
                answer[i] = arr[i];
            }
        }
        return answer;
    }
}
풀이 설명

int[] answer = new int[arr.length];: 결과를 저장할 배열 answer를 입력 배열 arr과 동일한 길이로 생성합니다.

for(int i = 0; i < arr.length; i++) : 입력 배열 arr를 반복하면서 각 요소를 검사합니다.

if(arr[i] >= 50 && arr[i] % 2 == 0) : 현재 요소가 50 이상이면서 짝수인 경우:

현재 요소를 2로 나눈 값을 answer 배열에 저장합니다.

else if(arr[i] < 50 && arr[i] % 2 != 0) : 현재 요소가 50 미만이면서 홀수인 경우:

현재 요소를 2배로 곱한 값을 answer 배열에 저장합니다.

else : 위의 두 조건을 만족하지 않는 경우 (즉, 50 이상이면서 짝수가 아니거나, 50 미만이면서 홀수가 아닌 경우):

현재 요소를 그대로 answer 배열에 저장합니다.

return answer;: 최종적으로 연산이 완료된 answer 배열을 반환합니다.