728x90
https://school.programmers.co.kr/learn/courses/30/lessons/181846
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
728x90
메모리: 96.9 MB, 시간: 18.28 ms
사용 알고리즘: 문자열
class Solution {
public String solution(String a, String b) {
// a와 b 뒤집어 저장
a = new StringBuilder(a).reverse().toString();
b = new StringBuilder(b).reverse().toString();
StringBuilder answer = new StringBuilder();
// 더 작은 자릿수를 가진 수의 자릿수만큼만 덧셈 수행
int mod = 0, aa, bb;
for(int i = 0; i < Math.min(a.length(), b.length()); i++) {
aa = a.charAt(i) - '0';
bb = b.charAt(i) - '0';
answer.append((aa + bb + mod) % 10);
mod = (aa + bb + mod) / 10;
}
// 더 긴 자릿수를 가진 수를 마저 더해줌
for(int i = Math.min(a.length(), b.length()); i < a.length(); i++) {
aa = a.charAt(i) - '0';
answer.append((aa + mod) % 10);
mod = (aa + mod) / 10;
}
for(int i = Math.min(a.length(), b.length()); i < b.length(); i++) {
bb = b.charAt(i) - '0';
answer.append((bb + mod) % 10);
mod = (bb + mod) / 10;
}
// mod가 남아있다면 마저 더해줌
if(mod != 0) answer.append(mod);
// 뒤집어서 연산을 했기 때문에 다시 뒤집어서 리턴
return answer.reverse().toString();
}
}
728x90
'Problem Solving > Programmers' 카테고리의 다른 글
[프로그래머스, 181843] 부분 문자열인지 확인하기 (java) (0) | 2025.04.25 |
---|---|
[프로그래머스, 181844] 배열의 원소 삭제하기 (java) (0) | 2025.04.25 |
[프로그래머스, 120882] 등수 매기기 (java) (0) | 2025.04.16 |
[프로그래머스, 120868] 삼각형의 완성조건 (2) (java) (0) | 2025.04.07 |
[프로그래머스, 181835] 조건에 맞게 수열 변환하기 3 (java) (0) | 2025.04.07 |