개인 공부/프로그래머스
[프로그래머스] 홀짝에 따라 다른 값 반환하기
개발 기록
2024. 1. 15. 14:19
문제
내풀이
class Solution {
public int solution(int n) {
int answer = 0;
if(n % 2 == 0){ // 주어진 수가 짝수면 제곱+
while(n > 0){
answer += (n % 2 == 0)? n*n : 0 ;
n--;
}
}
else{ // 주어진 수가 홀수면 +
while(n > 0){
answer += (n % 2 == 1)? n : 0 ;
n--;
}
}
System.out.println(answer);
return answer;
}
}
다른 풀이
class Solution {
public int solution(int n) {
int answer = 0;
for(int i = n; i >= 0; i -= 2)
answer += (n % 2 == 0) ? i * i : i;
return answer;
}
}
느낀점
풀면서 조금 더 줄일 수 있을것같더니
3항 연산자를 저렇게 이용해야 했다
하나씩 -- 하는 것만 생각했는데 -2를 하면 된단든 것을 알게 되었다
고친 코드
class Solution {
public int solution(int n) {
int answer = 0;
while(n > 0){
answer += (n % 2 == 0)? n*n : n ;
n-=2;
}
return answer;
}
}
이 코드가 제일 깔끔하고 좋은듯