
내가 생각했을때 문제에서 원하는부분
정수 배열 arr와 자연수 k가 주어집니다.
만약 k가 홀수라면 arr의 모든 원소에 k를 곱하고, k가 짝수라면 arr의 모든 원소에 k를 더합니다.
이러한 변환을 마친 후의 arr를 return 하는 solution 함수를 완성해 주세요.
내가 이 문제를 보고 생각해본 부분
입력 매개변수로 정수 배열 arr과 자연수 k를 받는다.
반환값은 변환된 배열 answer이다.
먼저 answer 배열을 입력 배열과 같은 길이로 초기화한다.
k가 홀수인지 짝수인지 k % 2 == 1 조건문으로 판단한다.
k가 홀수이면 배열의 모든 원소에 k를 곱하여 answer에 저장한다.
k가 짝수이면 배열의 모든 원소에 k를 더하여 answer에 저장한다.
마지막으로 변환이 완료된 answer 배열을 반환한다.
Main110 클래스의 인스턴스를 생성한다.
예제로 주어진 두 입력 배열과 k 값을 선언한다.
solution 메서드를 호출해 변환된 결과 배열을 얻는다.
for-each 루프를 이용해 결과 배열 원소를 공백으로 구분해 출력한다.
한 줄 띄워서 두 번째 예제 결과도 동일하게 출력한다.
이렇게 해서 간단하게 메서드의 작동을 직접 확인할 수 있게 작성하였다.
코드로 구현
class Solution {
public int[] solution(int[] arr, int k) {
int[] answer = new int[arr.length];
if (k % 2 == 1) {
for (int i = 0; i < arr.length; i++) {
answer[i] = arr[i] * k;
}
} else {
for (int i = 0; i < arr.length; i++) {
answer[i] = arr[i] + k;
}
}
return answer;
}
}
프로그래머스 코드
package programmers.programmers2;
// 프로그래머스 조건에 맞게 수열 변환하기 3
public class Main110 {
public int[] solution(int[] arr, int k) {
int[] answer = new int[arr.length];
if (k % 2 == 1) {
for (int i = 0; i < arr.length; i++) {
answer[i] = arr[i] * k;
}
} else {
for (int i = 0; i < arr.length; i++) {
answer[i] = arr[i] + k;
}
}
return answer;
}
public static void main(String[] args) {
Main110 sol = new Main110();
int[] arr1 = {1, 2, 3, 100, 99, 98};
int k1 = 3;
int[] result1 = sol.solution(arr1, k1);
for (int num : result1) {
System.out.print(num + " ");
}
System.out.println();
int[] arr2 = {1, 2, 3, 100, 99, 98};
int k2 = 2;
int[] result2 = sol.solution(arr2, k2);
for (int num : result2) {
System.out.print(num + " ");
}
}
}
위에 있는 코드를 변경한 코드
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.