프로그래머스/Lv. 0(코딩 기초 트레이닝)

[프로그래머스 코딩테스트]조건에 맞게 수열 변환하기 1(Java)

Sigfriede 2023. 5. 9. 01:20

  문제 설명

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

 

  제한사항

  • 1 <= arr의 길이 <= 1,000,000
  • 1 <= arr의 원소의 값 <= 100

 

  입출력 예

arr result
[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;
    }
}

  for문이 arr의 길이만큼 순회합니다. 만약 arr의 i번째 원소가 50보다 크거나 같고, 동시에 arr의 i번째 원소가 짝수라면 answer의 i번째 원소에 arr의 i번째 원소를 2로 나눈 값을 할당합니다. 만약 arr의 i번째 원소가 50보다 작고, 동시에 arr의 i번째 원소가 홀수라면 answer의 i번째 원소에 arr의 i번째 원소를 2로 곱한 값을 할당합니다. 만약 앞선 조건에 어느 것도 해당하지 않는다면 answer의 i번째 원소에 arr의 i번째 원소를 할당합니다.

  조건에 맞추어 arr 배열의 원소가 변경되거나 변경되지 않고 answer 배열의 원소로 추가될 것입니다.