Dev.baelanche

[백준 10824] 네 수 본문

Data Structure & Algorithm/PS - JAVA

[백준 10824] 네 수

baelanche 2019. 4. 13. 16:25
반응형

 

 

입력한 네 수 중 두개씩을 이어붙여 하나의 수로 만든다.

수가 자료형의 범위를 넘어가게 되므로 수를 문자열로 취급하여 풀어야 한다.

정말 지저분하지만 내가 푼 방법을 서술해보겠다.

 

1. 수를 문자형으로 입력받아 이어붙인다.

2. 만들어진 두 수의 길이를 비교해 짧은쪽의 앞을 0으로 채운다.

3. 맨 끝 인덱스부터 더하여 10 이상일 경우 자리올림을 한다.

3 - 1. 자리올림할때 맨 첫 자리일 경우엔 앞에 1을 채운다.

 

 

public class Main {

    public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		String a = sc.next();
		String b = sc.next();
		String c = sc.next();
		String d = sc.next();

		a = a+b;
		c = c+d;
		
		ArrayList<Integer> aa = new ArrayList<Integer>();
		ArrayList<Integer> bb = new ArrayList<Integer>();
		ArrayList<Integer> cc = new ArrayList<Integer>();
		
		for(int i=0; i<a.length(); i++)
			aa.add((int)a.charAt(i) - 48);
		for(int i=0; i<c.length(); i++)
			bb.add((int)c.charAt(i) - 48);

		while(aa.size() != bb.size()) {
			if(aa.size() < bb.size())
				aa.add(0, 0);
			else bb.add(0, 0);
		}

		for(int i=aa.size() - 1; i>=0; i--) {
			int tmp = aa.get(i) + bb.get(i);
			if(tmp > 9) {
				tmp = tmp - 10;
				if(i-1 < 0) {
					cc.add(0, tmp);
					cc.add(0, 1);
				} else {
					aa.set(i-1, aa.get(i-1) + 1);
					cc.add(0, tmp);
				}
			} else cc.add(0, tmp);
		}
		
		for(int i=0; i<cc.size(); i++)
			System.out.print(cc.get(i));
	}

}

 

 

코드를 줄여볼까 하다가 나갈일이 생겨서 관뒀다.

반응형

'Data Structure & Algorithm > PS - JAVA' 카테고리의 다른 글

[백준 1149] RGB거리  (0) 2019.04.15
[백준 1188] 음식 평론가  (0) 2019.04.15
[백준 2033] 반올림  (0) 2019.04.12
[백준 2909] 캔디 구매  (0) 2019.04.12
[백준 1260] DFS와 BFS  (0) 2019.04.12
Comments