https://www.acmicpc.net/problem/2729
λ¬Έμ
μ΄μ§μ λ§μ μ λ§€μ° κ°λ¨νκ³ , μμ§μ λ§μ κ³Ό λΉμ·νκ² νλ©΄ λλ€. μμ§μ λ§μ μ ν λλ, μ€λ₯Έμͺ½λΆν° μΌμͺ½μΌλ‘ μ°¨λ‘λλ‘ μ«μ νλμ© λνλ©΄ λλ€. μ΄μ§μ λ§μ λ μ΄μ λΉμ·νκ² νλ©΄ λλ€. μμ§μ λ§μ μ μΈμμΌ ν λ§μ μ΄ λ§μ§λ§, μ΄μ§μ λ§μ μ μλμ κ°μ΄ 5κ°μ§λ§ κΈ°μ΅νλ©΄ λλ€.
- 0 + 0 = 0
- 1 + 0 = 1
- 0 + 1 = 1
- 1 + 1 = 10
- 1 + 1 + 1 = 11
λ μ΄μ§μκ° μ£Όμ΄μ‘μ λ, κ·Έ ν©μ μ΄μ§μλ‘ μΆλ ₯νλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯
첫째 μ€μ ν μ€νΈ μΌμ΄μ€μ μ T(1<=T<=1,000)κ° μ£Όμ΄μ§λ€. κ° ν μ€νΈ μΌμ΄μ€λ μ«μ 2κ°λ‘ μ΄λ£¨μ΄μ Έμλ€. μ΄ μ«μλ 0κ³Ό 1λ‘λ§ μ΄λ£¨μ΄μ§ μ΄μ§μμ΄λ©°, κΈΈμ΄λ μ΅λ 80μ리μ΄λ€. (λ§μ κ²°κ³Όλ 81μλ¦¬κ° λ μλ μλ€) μ΄μ§μλ 0μΌλ‘ μμν μλ μλ€.
μΆλ ₯
κ° ν μ€νΈ μΌμ΄μ€μ λν΄ μ λ ₯μΌλ‘ μ£Όμ΄μ§ λ μ΄μ§μμ ν©μ κ΅¬ν΄ μ΄μ§μλ‘ μΆλ ₯νλ€. μ«μμ μμ λΆνμν 0μ΄ λΆμΌλ©΄ μ λλ€.
νμ΄
μ²μμ μ½κ² κ°λ €κ³ ,,,,,,, μ΄μ§μλ₯Ό μμ§μλ‘ λ³νν΄ λνκ³ λ€μ μ΄μ§μλ‘ λ³νν΄μ μΆλ ₯νλλ°μμμμμ₯
λΉ λ°€π€¦βοΈ NUMBERFORMATEXCEPTION
μ νμ¬νμ μ΅λ 80μ리 (λνλ©΄ 81μ리 κ°λ₯)μΈλ°, longμ μ΅λ 64bits.... μ λ λΆκ° βΌοΈ
κ·Έλμ λ¬Έμμ΄ μμΌλ‘ λ§μ μ μ§ννλ°μ βΌοΈ
μκ°λ³΄λ€ 빨리 νλλ° κ³μ νλ¦Ό... μμ π₯
μκ³ λ³΄λ λ§μ§λ§ carryκ° μΆλ ₯μλ..... κ·Έλμ κ³ μ³μ€¬λ€
κ·Όλ° λ νλ¦Ό ... μμ π₯
000 000 κ°μ κ²½μ°κ° μ£Όμ΄μ§λ©΄ λ΄ μ½λλ 000μ μΆλ ₯νλλ° .... μ΄κ±Έ 0λ§ μΆλ ₯νκ² νλκΉ ν΅κ³Ό βΌοΈ
μ΄μ¨.... κ·ΈλΌ μΆλ ₯μ μ νμ¬ν μ μ΄μ£Όλκ°μμμβΌοΈ
κ·Έλλ ν΄κ²°ν΄μ λ€ν ν΄~π€·βοΈ
μ½λ
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main_BOJ_2729_μ΄μ§μλ§μ
{
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb;
StringTokenizer stringTokenizer;
int testCase = Integer.parseInt(br.readLine());
while(testCase-- > 0){
sb = new StringBuilder();
stringTokenizer = new StringTokenizer(br.readLine());
String a = stringTokenizer.nextToken();
String b = stringTokenizer.nextToken();
int len = 0;
int diff = 0;
int carry = 0;
int remain = 0;
if(a.length() > b.length()){
len = a.length();
diff = a.length() - b.length();
while(diff-- > 0){
b = '0'+ b;
}
}
else if(b.length() > a.length()){
len = b.length();
diff = b.length() - a.length();
while(diff-- > 0){
a = '0' + a;
}
}
else
len = a.length();
for(int i = len-1; i >= 0 ; i--){
int sum = (a.charAt(i) - 48) + (b.charAt(i) - 48) + carry;
carry = sum / 2;
remain = sum % 2;
sb.append(remain);
if(i == 0 && carry == 1)
sb.append(1);
}
char[] str = sb.reverse().toString().toCharArray();
int idx = 0;
for(int i = 0 ; i < str.length; i++){
if(str[i] == '0'){
idx++;
}
else break;
}
if(idx == str.length)
System.out.println(0);
else{
for(int i = idx; i < str.length ; i++)
System.out.print(str[i]);
System.out.println();
}
}
}
}
'μκ³ λ¦¬μ¦ > λ°±μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[ λ°±μ€ / BOJ 1976 ] μ¬ν κ°μ ( μλ° / JAVA ) (0) | 2021.10.20 |
---|---|
[ λ°±μ€ / BOJ 1967 ] νΈλ¦¬μ μ§λ¦ ( μλ° / JAVA ) (0) | 2021.10.20 |
[ λ°±μ€ / BOJ 2469 ] μ¬λ€λ¦¬ νκΈ° ( μλ° / JAVA ) (0) | 2021.10.19 |
[ λ°±μ€ / BOJ 1987 ] μνλ²³ ( μλ° / JAVA ) (0) | 2021.10.19 |
[ λ°±μ€ / BOJ 20168 ] 골λͺ© λμ₯ νΈμ - κΈ°λ₯μ± ( μλ° / JAVA ) (0) | 2021.10.19 |