
* 문제 풀이
class Solution {
public int solution(int n) {
int answer = 0;
for(int i = 1; i <= n; i++){
if(n % 2 != 0 && i % 2 != 0){
answer += i;
} else if(n % 2 == 0 && i % 2 == 0){
answer += i * i;
}
}
return answer;
}
}
++ 오답
class Solution {
public int solution(int n) {
int answer = 0;
for(int i = 1; i <= n; i++){
if(n % 2 != 0 && i % 2 != 0){
answer += i;
} else {
answer += i * i;
}
}
return answer;
}
}
처음에 위 코드 처럼 작성하고 홀수값이 다르게 나와서 왜 저렇게 나오나 이해가 안 갔었다.

if 조건 충족하면 else 실행을 안 하잖아? 그래서 ^조건문 충족^에만 꽂혀서 충족하지 않을 때를 생각하지 않았다;;;
홀수 if 충족하면 당연히 나머지는 짝수라 else문 타니까.
근데 else에 조건문을 정확히 써주지 않으면 n과 i 모두 홀수일 때를 제외한 나머지 조건이 else로 빠지는데, 예를 들어 n이 홀수여도 i가 짝수면 else문을 타기 때문에 이 합까지 더해져 오답이 났던 것!
너무 홀수 짝수에만 집중을 했어. 나 왤케 어렵게만 생각하는지ㅠㅠㅠㅠ
* 프로그래머스 다른 풀이
https://school.programmers.co.kr/learn/courses/30/lessons/181935/solution_groups?language=java
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
'코테 > 프로그래머스 JAVA Lv.0' 카테고리의 다른 글
| [프로그래머스/java/Lv.0] 원하는 문자열 찾기 (0) | 2025.02.06 |
|---|---|
| [프로그래머스/java/Lv.0] 문자열 바꿔서 찾기 (0) | 2025.02.05 |
| [프로그래머스/java/Lv.0] 두 수의 연산값 비교하기 (0) | 2025.02.03 |
| [프로그래머스/java/Lv.0] 이어 붙인 수 (0) | 2025.02.02 |
| [프로그래머스/java/Lv.0] 배열의 원소만큼 추가하기 (0) | 2025.02.01 |