프로그래머스 조건에 맞게 수열 변환하기 1

KIMYEONGJUN·2026년 6월 26일
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

정수 배열 arr가 주어집니다.
arr의 각 원소에 대해 값이 50보다 크거나 같은 짝수라면 2로 나누고, 50보다 작은 홀수라면 2를 곱합니다.
그 결과인 정수 배열을 return 하는 solution 함수를 완성해 주세요.

내가 이 문제를 보고 생각해본 부분

main 메서드에서는 테스트용 배열 arr을 선언하고 solution 메서드를 호출하여 변환 결과를 받는다.
Arrays.toString(result)를 사용해 결과 배열을 문자열 형태로 출력한다.
solution 메서드는 입력 받은 배열 arr의 크기만큼 길이가 같은 새로운 배열 answer를 생성한다.
배열을 순회하면서 각 원소를 조건에 따라 변환한다.
첫 번째 조건은 원소가 50 이상이고 짝수인 경우로, 이 경우 해당 값을 2로 나누어 answer 배열의 같은 인덱스에 저장한다.
두 번째 조건은 원소가 50 미만이고 홀수인 경우로, 이 경우 해당 값을 2배 곱해서 저장한다.
나머지 경우에는 원소를 그대로 복사한다.
모든 원소 변환이 끝나면 answer 배열을 반환한다.

코드로 구현

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 == 1) {
                answer[i] = arr[i] * 2;
            } else {
                answer[i] = arr[i];
            }
        }
        return answer;
    }
}

프로그래머스 코드

package programmers;

import java.util.Arrays;

// 프로그래머스 조건에 맞게 수열 변환하기 1
public class Main63 {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 100, 99, 98};
        int[] result = solution(arr);
        System.out.println(Arrays.toString(result));
    }

    public static 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 == 1) {
                answer[i] = arr[i] * 2;
            } else {
                answer[i] = arr[i];
            }
        }
        return answer;
    }
}

위에 있는 코드를 변경한 코드

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글