Level.0
문제
정수 배열 arr와 자연수 k가 주어집니다.
만약 k가 홀수라면 arr의 모든 원소에 k를 곱하고, k가 짝수라면 arr의 모든 원소에 k를 더합니다.
이러한 변환을 마친 후의 arr를 return 하는 solution 함수를 완성해 주세요.
* 제한사항
- 1 ≤ arr의 길이 ≤ 1,000,000
- 1 ≤ arr의 원소의 값 ≤ 100
- 1 ≤ k ≤ 100
풀이
class Solution {
public int[] solution(int[] arr, int k) {
int[] answer = new int[arr.length];
for(int i=0; i<arr.length; i++){
answer[i] = (arr[i] * (k%2) * k) + (arr[i] + k) * ((k+1)%2);
}
return answer;
}
}
반복문에 조건문을 넣지 않고 풀어보고싶었다.
홀수는 2로 나누면 나머지가 1이고, 짝수는 0이라는 점을 활용하여 위와같이 풀이해보았다.
https://school.programmers.co.kr/learn/courses/30/lessons/181835
'Algorithm > Programers - Java' 카테고리의 다른 글
[프로그래머스(Java)] 마지막 두 원소 / Arrays.copyOf() (0) | 2024.02.27 |
---|---|
[프로그래머스(Java)] 접두사인지 확인하기 / String.startsWith() (0) | 2024.02.26 |
[프로그래머스(Java)] 길이에 따른 연산 / reduce() (0) | 2024.02.26 |
[프로그래머스(Java)] 배열의 길이에 따라 다른 연산하기 (1) | 2024.02.26 |
[프로그래머스(Java)] 숨어있는 숫자의 덧셈 (1) / Character.isDigit() (0) | 2024.02.26 |