250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
Tags
- Bfs와DFS
- BFS
- 백준
- 백준2251
- N과M
- 백준15652
- 재귀함수
- 전화번호속의암호
- 완탐
- 자바 코테
- 볼륨 만들기
- 순열
- 코테
- 중복조합
- java
- 알고리즘개념
- 알고리즘
- 주사위굴리기2
- 파티션 크기 조정
- 23288
- 완전탐색
- 백준13458
- 코테준비
- 중복순열
- D드라이브생성
- 에라토스테네스의채
- 정보처리기사
- 자바
- 삼성역테
- 정올 1620
Archives
- Today
- Total
뚱땅뚱땅
[문제] 백준 10757번 큰 수 A+B 본문
728x90
* 출처: 백준 단계별로 풀어보기 기본수학 1편
[
10757번: 큰 수 A+B
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
](https://www.acmicpc.net/problem/10757)
long으로 풀면 되는게 아니라, 문자열에 저장해서 풀어야 하는 문제다. (배열로도 가능)
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
String b = sc.next();
String ans = ""; // a+b를 담을 변수
int idxA = a.length() - 1;
int idxB = b.length() -1;
int sum = 0;
int plus = 0;
while(true) {
if(idxA <0 && idxB<0) {
if(plus !=0) ans+= plus;
break;
}
else if(idxA<0 && idxB>=0) {
sum = plus + stoi(b.charAt(idxB--));
}
else if(idxA>=0 && idxB<0) {
sum = plus + stoi(a.charAt(idxA--));
}else {
sum = plus + stoi(a.charAt(idxA--)) + stoi(b.charAt(idxB--));
}
ans += String.valueOf(sum%10);
plus = sum / 10;
}
System.out.println(reverse(ans));
}
public static int stoi(char a) {
return a - '0';
}
public static String reverse(String a) {
int len = a.length();
String ans = "";
for (int i = len - 1; i >= 0; i--) {
ans += String.valueOf(a.charAt(i));
}
return ans;
}
}
입력받은 두 수의 자리수가 달라서 저렇게 조건을 나누었지만, 다른 사람 코드를 봐보니 애초에 두 문자열이 길이가 동일하도록 변경해주는 방법이 있었다.
예를 들어, 100 + 4 를 100+ 004 로 맞춰주는 것이다.
이 풀이 외에는 java.math.BigDecimal을 이용해서 그냥 add 해주었다. 이건 아는 사람만 할 수 있는 듯..
728x90
'알고리즘 > 백준' 카테고리의 다른 글
[문제] 백준 2775번 부녀회장이 될테야 (0) | 2021.01.27 |
---|---|
[문제] 백준 2839번 설탕 배달 (0) | 2021.01.25 |
[문제] 백준 10250번 ACM 호텔 (0) | 2021.01.25 |
[문제] 백준 2869 달팽이는 올라가고 싶다 (0) | 2021.01.25 |
[문제] 백준 1193번 분수찾기 (0) | 2021.01.24 |
Comments