알고리즘/백준알고리즘
[백준알고리즘] #14623. 감정이입 (by JAVA and node.js)
Jimnya
2022. 4. 29. 09:12
728x90
반응형
백준알고리즘
- Bronze 4 -
#14623. 감정이입 by JAVA and node.js
문제
출처: https://www.acmicpc.net/problem/14623
접근 방법
30자리 이하의 이진수이므로 최대길이의 이진수를 십진수로 환산하면 int의 범위를 벗어난다.
이진수를 입력받을 떄에는 String에 저장해야하므로, long형 변수를 선언해서 Long.parseLong()을 이용하여 이진수를 십진수로 저장한 후, 다시 Long.toBinaryString()을 이용해 계산값을 이진수로 변환하여 출력하면 된다.
풀이
▶ JAVA
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String b1 = scan.next(); // 이진수 1
String b2 = scan.next(); // 이진수 2
scan.close();
long b1n = Long.parseLong(b1, 2); // b1을 long형 십진수로 형변환
long b2n = Long.parseLong(b2, 2); // b2를 long형 십진수로 형변환
String multiply = Long.toBinaryString(b1n * b2n); // 곱한 값을 이진수로 변환
System.out.println(multiply);
}
}
▶ node.js
var fs = require('fs');
var input = fs.readFileSync('/dev/stdin').toString().trim().split('\n').map(Number);
var b1 = BigInt(parseInt(input[0], 2));
var b2 = BigInt(parseInt(input[1], 2));
var answer = b1 * b2;
console.log(answer.toString(2));
node.js의 경우 BigInt와 toString(2)를 이용했다.
결과
End.
heisely's 괴발개발 개발일지
728x90
반응형