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