
* 문제 풀이
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] + n;
} else{
answer[i] = arr[i];
}
}
} 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;
}
}

너무 복잡하게 푼 것 같다...
* 프로그래머스 다른 풀이
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 += 2){
arr[i] += n;
}
}
else{
for(int i = 1; i < arr.length; i += 2){
arr[i] += n;
}
}
return arr;
}
}
class Solution {
public int[] solution(int[] arr, int n) {
int[] answer = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
if (arr.length % 2 == 1 && i % 2 == 0) {
answer[i] = arr[i] + n;
} else if (arr.length % 2 == 0 && i % 2 == 1) {
answer[i] = arr[i] + n;
} else {
answer[i] = arr[i];
}
}
return answer;
}
}
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;
}
}
int idx = arr.length % 2 * - 1 + 1; 이렇게 하면 삼항 연산자 안 써도 된다고 한다.
int idx = (arr.length % 2)^1; 도 가능
'코테 > 프로그래머스 JAVA Lv.0' 카테고리의 다른 글
| [프로그래머스/java/Lv.0] 더 크게 합치기 (0) | 2025.01.22 |
|---|---|
| [프로그래머스/java/Lv.0] 배열 비교하기 (0) | 2025.01.21 |
| [프로그래머스/java/Lv.0] 뒤에서 5등 위로 (0) | 2025.01.17 |
| [프로그래머스/java/Lv.0] 부분 문자열인지 확인하기 (0) | 2025.01.15 |
| [프로그래머스/java/Lv.0] 부분 문자열 (0) | 2025.01.15 |