1일 1백준 6일차, 오늘 푼 문제는 10757번 문제인 "큰 수 A + B"이다.
https://www.acmicpc.net/problem/10757
원래 "단계별로 풀어보기"의 문제 순서를 따르던 중이었는데, 앞의 두 문제가 꽤 어려워 시험기간인 지금 너무 많은 투자는 힘들겠다고 판단, 비교적 쉬워보였던 이 문제를 풀게 되었다.
이 문제는 해결책을 구상하기가 매우 아주 굉장히 정말 엄청 간단하다.
하지만 배열을 다루는 만큼 인덱싱에 신경을 써야한다.
그리고 자리 올림이 발생하는 경우와 아닌 경우에 처리 방식이 다르다는 점도 유의할 필요가 있다.
아래로 내리면 정답 코드가 나옵니다. 문제를 아직 풀지 않으신 분들은 주의해주세요.
import java.util.Scanner;
public class pro10757 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
String b = sc.next();
String str = "";
int[] arr = new int[100000];
StringBuffer asb = new StringBuffer(a).reverse();
a = asb.toString();
StringBuffer bsb = new StringBuffer(b).reverse();
b = bsb.toString();
String longer = a.length() >= b.length() ? a : b;
for (int i = 0; i < a.length(); i++) {
arr[i] += Integer.parseInt(String.valueOf(a.charAt(i)));
}
for (int i = 0; i < b.length(); i++) {
arr[i] += Integer.parseInt(String.valueOf(b.charAt(i)));
}
for (int i = 0; i < longer.length(); i++) {
if (arr[i] >= 10) {
arr[i + 1]++;
arr[i] -= 10;
}
}
if(arr[longer.length()] > 0){
for (int i = longer.length(); i >= 0; i--) {
str += arr[i];
}
}
else {
for (int i = longer.length()-1; i >= 0; i--) {
str += arr[i];
}
}
System.out.println(str);
}
}
'1일 1백준' 카테고리의 다른 글
1일 1백준 : 2839번 설탕 배달 (0) | 2022.06.19 |
---|---|
1일 1백준 : 10250번 ACM호텔 (0) | 2022.06.17 |
1일 1백준 : 2869번 달팽이는 올라가고 싶다 (0) | 2022.06.16 |
1일 1백준 : 1193번 분수찾기 (0) | 2022.06.16 |
1일 1백준 : 2292번 벌집 (0) | 2022.06.14 |