Notice
Recent Posts
Recent Comments
Link
Dev.baelanche
[백준 10824] 네 수 본문
반응형
입력한 네 수 중 두개씩을 이어붙여 하나의 수로 만든다.
수가 자료형의 범위를 넘어가게 되므로 수를 문자열로 취급하여 풀어야 한다.
정말 지저분하지만 내가 푼 방법을 서술해보겠다.
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