| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- 프로그래머스 #열의 길이를 2의 거듭제곱으로 만들기 #Java #자바 #알고리즘 #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #있었는데요 없었습니다 #DB #MySQL #알고리즘 #쿼리문 #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #등차수열의 특정한 항만 더하기 #알고리즘 #Java #자바 #코린이 #개발자 #study #공부
- 프로그래머스 #조건별로 분류하여 주문상태 출력하기 #MySQL #쿼리문 #알고리즘 #코린이 #개발자 #study #취준
- 프로그래머스 #배열만들기 5 #알고리즘 #study #Java #코린이 #개발자 #성장 #공부
- 프로그래머스 #부분 문자열 이어 붙여 문자열 만들기 #알고리즘 #Java #자바 #코린이 #개발자 #study #취준
- 프로그래머스 #2차원으로 만들기 #알고리즘 #Java #자바 #study #코린이 #개발자 #공부 #성장
- 프로그래머스 #합성수 찾기 #알고리즘 #Java #자바 #stiudy #코린이 #개발자 #공부 #성장
- 코린이 #개발자 #study
- 프로그래머스 #문자열 뒤집기 #알고리즘 #Java #자바 #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #할 일 목록 #알고리즘 #Java #자바 #코린이 #개발자 #study #취준
- 프로그래머스 #간단한 식 계산하기 #알고리즘 #Java #자바 #코린이 #개발자 #study #취준
- 프로그래머스 #길이에 따른 연산 #알고리즘 #자바 #Java #코린이 #개발자 #study #취준
- 프로그래머스 #특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 #알고리즘 #자바 #Java #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #카테고리 별 도서 판매량 집계하기 #알고리즘 #쿼리문 #MySQL #코린이 #개발자 #study #취준
- 프로그래머스 #1로 만들기 #알고리즘 #자바 #Java #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #조건에 맞게 수열 변환하기 1 #알고리즘 #자바 #Java #코린이 #개발자 #study #취준
- 프로그래머스 #배열 회전시키기 #알고리즘 #Java #자바 #코린이 #개발자 #study #취준
- 프로그래머스 #문자열이 몇 번 등장하는지 세기 #알고리즘 #Java #자바 #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #푸드 파이트 대회 #알고리즘 #Java #자바 #코린이 #개발자 #study #취준
- 프로그래머스 #중복된 문자 제거 #알고리즘 #Java #자바 #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #조건에 맞는 사용자와 총 거래금액 조회하기 #알고리즘 #Mysql #DB #쿼리문 #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #날짜 비교하기 #알고리즘 #자바 #Java #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #수열과 구간 쿼리1 #알고리즘 #자바 #Java #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #소수 만들기 #알고리즘 #Java #자바 #코린이 #개발자 #study #취준
- 백준 #
- 프로그래머스 #세로 읽기 #알고리즘 #개발자 #코린이 #study #성장 #Java #자바
- 파이썬 #input() #sys.stdin.readline() #공부 #study
- 프로그래머스 #오랜 기간 보호한 동물(1) #알고리즘 #MySQL #DB #쿼리문 #개발자 #study #성장 #코린이
- 프로그래머스 #수열과 구간 쿼리 3 #알고리즘 #자바 #Java #코린이 #개발자 #study #공부 #성장
- Today
- Total
luke
[프로그래머스] - 홀짝에 따라 다른 값 반환하기 (Java/자바) 본문
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/181935
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제.

풀이.
class Solution {
public int solution(int n) {
int answer = 0;
for(int i = 1; i <= n; i++){
if(n % 2 != 0){
if(i % 2 != 0){
answer += i;
}
}else{
if(i % 2 == 0){
answer += i * i;
}
}
}
return answer;
}
}
오늘 문제는 프로그래머스 "홀짝에 따라 다른 값 반환하기" 문제다.
문제 설명은 n값이 홀수 이면 1~n 홀수 값들의 합을 구하고 n이 짝수이면 1~n 짝수 값들의 제곱근의 합을 구하는 문제다.
바로 풀이해보겠다.
1. n입력값만큼 반복해주기 위해 for문을 먼저 사용한다.
2. for문 안에서의 if문인 조건식을 만들어 준다. 첫 번째로 홀수 값들을 출력하는 조건식이고 answer += i로 합을 구해준다.
3. 두 번째로 짝수는 else에서 answer += i * i로 짝수 값의 제곱근을 더해준다. 그럼 끝이다.
하지만 여기서 내가 푼 풀이 방식과 최적화된 풀이 방식을 비교해보려 한다. 위에 코드도 작동은 하지만 개발자의 입장에서는 최적화된 코드와 효율을 따져가며 프로그래밍해야 한다 생각하기 때문이다. 밑에 코드가 위에 코드보다 나은 코드다.
class Solution {
public int solution(int n) {
int answer = 0;
if(n % 2 != 0){
for(int i = 1; i <= n; i+=2){
if(i % 2 != 0){
answer += i;
}
}
}else{
for(int i = 2; i <= n; i+=2){
if(i % 2 == 0){
answer += i * i;
}
}
}
return answer;
}
}
처음에 보여준 코드와 다르게 반복문을 먼저 사용하지 않고 조건으로 루프 내에서 불필요한 연산을 하지 않는다.
또한 for문에서 처음에 n값이 홀수 인지 짝수인지 먼저 확인 후 for문을 돌리기에 for문에서 i++을 사용 하지 않고 i+=2를 사용해줬다. 그럼 하나하나 i의 값을 찾지 않아도 되기 때문이다.
'알고리즘문제 > 프로그래머스(Java)' 카테고리의 다른 글
| [프로그래머스] - 문자열 정렬하기 (1) (Java/자바) (0) | 2025.10.12 |
|---|---|
| [프로그래머스] - 원소들의 곱과 합 (Java/자바) (0) | 2025.10.11 |
| [프로그래머스] - 콜라문제 (Java/자바) (5) | 2025.09.07 |
| [프로그래머스] - 2016년 (Java/자바) (0) | 2025.08.21 |
| [프로그래머스] - 직각삼각형 출력하기 (Java/자바) (1) | 2025.08.18 |