📘문제 설명
어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.
https://school.programmers.co.kr/learn/courses/30/lessons/76501
코딩테스트 연습 - 음양 더하기
알고리즘 문제 연습 카카오톡 친구해요! 프로그래머스 교육 카카오 채널을 만들었어요. 여기를 눌러, 친구 추가를 해주세요. 신규 교육 과정 소식은 물론 다양한 이벤트 소식을 가장 먼저 알려
school.programmers.co.kr
📌 제한조건
- absolutes의 길이는 1 이상 1,000 이하입니다.
- absolutes의 모든 수는 각각 1 이상 1,000 이하입니다.
- signs의 길이는 absolutes의 길이와 같습니다.
- signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다.
💡 개념 설명
1단계: 총합계 준비하기
가장 먼저, 최종 합계를 기록할 저장 공간을 하나 만들고 0으로 설정합니다. 모든 계산은 이 0이라는 숫자에서 시작됩니다.
2단계: 숫자와 부호 확인하기
절댓값이 담긴 목록과 부호가 담긴 목록을 동시에 처음부터 끝까지 하나씩 훑어봅니다. 예를 들어, 첫 번째 절댓값과 첫 번째 부호를 한 쌍으로 보고, 그다음 두 번째 절댓값과 두 번째 부호를 한 쌍으로 보는 식으로 진행합니다.
3단계: 더할지 뺄지 결정하기
각 쌍을 확인할 때마다 부호에 따라 계산을 수행합니다.
- 만약 부호가 '양수'(true)이면 해당하는 절댓값을 총합계에 더합니다.
- 만약 부호가 '음수'(false)이면 해당하는 절댓값을 총합계에서 뺍니다.
이 과정을 목록의 마지막 숫자까지 반복합니다.
4단계: 최종 결과 내놓기
모든 숫자에 대한 덧셈과 뺄셈이 끝나면, 총합계에 최종 결과가 남게 됩니다.
📎 입출력 예시

📎 코드
import java.util.*;public class Solution { public int solution(int n) { int answer = 0; while (n > 0) { answer += n % 10; n /= 10; } return answer; } public static void main(String[] args) { Solution s = new Solution(); int result1 = s.solution(123); // 1 + 2 + 3 = 6 int result2 = s.solution(987); // 9 + 8 + 7 = 24 System.out.println("123 ➝ " + result1); // 6 출력 System.out.println("987 ➝ " + result2); // 24 출력 }}
📎 결과

'Java' 카테고리의 다른 글
| [Java] 코딩 18 - 프로그래머스 기출 문제(JAVA) / 없는 숫자 더하기 / Day 17 (1) | 2025.07.25 |
|---|---|
| [Java] 코딩 17 - 프로그래머스 기출 문제(JAVA) / 핸드폰 번호 가리기 / Day 16 (0) | 2025.07.18 |
| [Java] 코딩 15 - 프로그래머스 기출 문제(JAVA) / 나누어 떨어지는 숫자 배열 / Day 14 (1) | 2025.07.15 |
| [Java] 코딩 14 - 프로그래머스 기출 문제(JAVA) / 서울에서 김서방 찾기 / Day 13 (3) | 2025.07.14 |
| [Java] 코딩 13 - 프로그래머스 기출 문제(JAVA) / 콜라츠 추측 / Day 12 (2) | 2025.07.11 |