728x90
🔗 문제 링크
프로그래밍 강의 | 프로그래머스 스쿨
국비지원 K-디지털 기초역량훈련 코스, K-디지털 트레이닝 코스, 선배 개발자와 함께하는 라이브 교육, 데이터 사이언스, PCCP/PCCE 자격증, 세미나, 각종 프로그래밍 기초부터 실전까지 원하는 강
school.programmers.co.kr
📌 문제 개요
정수 배열 num_list가 주어질 때,
- 홀수만 순서대로 이어 붙인 수
- 짝수만 순서대로 이어 붙인 수
를 만든 후 두 수의 합을 반환하는 문제
[3, 4, 5, 2, 1]
홀수 → 351
짝수 → 42
351 + 42 = 393
📌 접근 방법
배열을 한 번만 순회하면서
- 짝수는 even
- 홀수는 odd
StringBuilder에 각각 이어 붙였습니다.
순회가 끝난 뒤 문자열을 정수로 변환하여 더하면 됩니다.
📌 핵심 아이디어
1. 향상된 for문으로 배열 순회
배열의 인덱스를 사용할 필요가 없기 때문에 향상된 for문을 사용하면 코드가 더욱 간결해집니다.
for (int num : numList) {
...
}
2. 삼항 연산자로 StringBuilder 선택
짝수와 홀수를 구분하여 각각의 StringBuilder에 추가합니다.
(num % 2 == 0 ? even : odd).append(num);
기존이라면 작성할 수 있지만, 삼항 연산자를 사용하면 한 줄로 표현할 수 있습니다.
if (num % 2 == 0) {
even.append(num);
} else {
odd.append(num);
}
3. 문자열을 정수로 변환
모든 숫자를 이어 붙인 뒤 Integer.parseInt()를 이용하여 정수로 변환합니다.
이후 두 값을 더해 최종 결과를 반환합니다.
Integer.parseInt(even.toString())
Integer.parseInt(odd.toString())
📌 처리 흐름
배열 순회
│
▼
짝수 → even 저장
홀수 → odd 저장
│
▼
StringBuilder → String 변환
│
▼
Integer.parseInt()
│
▼
두 수를 더하여 반환
📌 전체 코드
package level0;
public class No78 {
public static void main(String[] args) {
int[] numList = {3, 4, 5, 2, 1};
StringBuilder even = new StringBuilder();
StringBuilder odd = new StringBuilder();
for (int num : numList) {
(num % 2 == 0 ? even : odd).append(num);
}
System.out.println(
Integer.parseInt(even.toString())
+ Integer.parseInt(odd.toString())
);
}
}
📄 정리
- 배열을 한 번만 순회하여 해결할 수 있는 문제이다.
- StringBuilder를 사용하면 문자열을 효율적으로 이어 붙일 수 있다.
- Integer.parseInt()를 이용해 문자열을 정수로 변환할 수 있다.
- 삼항 연산자를 활용하면 조건에 따라 객체를 선택하는 코드를 간결하게 작성할 수 있다.
- 향상된 for문을 사용하면 불필요한 인덱스 사용을 줄여 가독성을 높일 수 있다.
728x90
'코테(Solved.ac + Programmers)' 카테고리의 다른 글
| 프로그래머스 홀짝에 따라 다른 값 반환하기 JAVA 풀이 (조건문, 반복문) (0) | 2026.07.14 |
|---|---|
| 프로그래머스 바탕화면 정리 JAVA 풀이|최소 드래그 영역 구하기 (0) | 2026.07.12 |
| 프로그래머스 삼각형의 완성조건 (1) JAVA 풀이 (0) | 2026.07.10 |
| 프로그래머스 문자열안에 문자열 JAVA 풀이 (Level 0) (0) | 2026.07.09 |
| 프로그래머스 크레인 인형뽑기 게임 JAVA 풀이 (2019 카카오 개발자 겨울 인턴십) (0) | 2026.07.08 |