package practice;
public class CharAt {
public static void main(String[] args) {
String str1 = "123";
String str2 = "888";
System.out.println("result : " + sum(str1, str2));
}
public static String sum(String str1, String str2) {
int sum = 0;
int carry = 0;
int str1Len = str1.length(); // 3
int str2Len = str2.length(); // 2
StringBuilder sb = new StringBuilder();
while(str1Len > 0 || str2Len > 0 ) {
int n1 = 0;
int n2 = 0;
if(str1Len > 0) {
n1 = str1.charAt(str1Len - 1) - '0';
}
if(str2Len > 0) {
n2 = str2.charAt(str2Len - 1) - '0';
}
sum = n1 + n2 + carry;
carry = sum / 10;
sb.append(sum % 10);
str1Len--;
str2Len--;
}
if(carry != 0) {
sb.append(carry);
}
return sb.reverse().toString();
}
}
str.charAt(i) - '0' 은 int를 반환
StringBuilder.reverse()
반복마다 값을 유지할 변수 선언;
while (반복을 끝낼 조건) {
반복마다 초기화가 필요한 변수 선언;
로직구현 + 조건문 + 인덱스를 이용하는 경우 index out of range 처리를 위한 조건 필요할 수도;
다음 반복을 위한 변수 증/감 처리 or 초기화;
}
'JAVA > 프로그래머스' 카테고리의 다른 글
17. 일차하는 문자열 찾기 (0) | 2021.02.11 |
---|---|
16. 괄호 짝 맞추기 (0) | 2021.02.11 |
13. 숫자 개수 (0) | 2021.01.04 |
12. 숫자사각형3 (0) | 2021.01.04 |
11. 숫자사각형2 (0) | 2020.12.21 |