0 이상의 두 정수가 문자열 a, b로 주어질 때, a + b의 값을 문자열로 return 하는 solution 함수를 작성해 주세요.
class Solution {
public String solution(String a, String b) {
String answer = "";
int a2=0; //한자리씩 더해질 수
int b2=0;
//더해지는 한자릿수의 합
int c=0;
Boolean up=false; // 올림됐을때 여부 측정
//for 문 길이 정하기 변수
int length = 0;
//더 긴 숫자 찾기
if(a.length()-b.length()>=0){
length=a.length();
}else {length=b.length();}
for(int i=0; i<=length; i++){
if(a.length()>i){
a2=a.charAt(a.length()-i-1)-'0';
}else { a2=0;}
if(b.length()>i){
b2=b.charAt(b.length()-i-1)-'0';
}else {b2=0;}
c=a2+b2;
if(up){
c++;
up=false;
//올림됐을때 1추가 해주고 다시 막아주기
}
//더했을떄 10이 넘어서가서 올림 됐을때
if(c>=10){
c-=10;
up = true;
answer+=c;
}else {answer+=c; }
}
if(answer.equals("00")){return "0";}
String answer1="";
for(int i=0; i<answer.length();i++){
if(i==0 && answer.charAt(answer.length()-1-i) =='0' ){
}else{
answer1+=answer.charAt(answer.length()-1-i);}
}
answer=answer1;
return answer;
}
}
음 숫자의 길이가 너무 길어서 한자리씩 더해주는 방식으로 했는데
다른 사람의 풀이를 보니까 BigInteger 타입으로 하는게 있어서 보니까 엄청 큰수를 계산할때 이렇게 쓴다고
하더래요 ;;; 이거 알았으면 금방했을텐데 너무 오래걸림 ㅋㅋ 이제라도 알아서 다
'자바 알고리즘 문제' 카테고리의 다른 글
| 문자열 여러 번 뒤집기 (0) | 2024.03.09 |
|---|---|
| 조건 문자열 (0) | 2024.03.09 |
| 영어가 싫어요 (0) | 2024.03.07 |
| 배열 만들기 6 (1) | 2024.02.29 |
| 문자열 계산하기 (1) | 2024.02.27 |