whatisthis?

백준 10430 javascript (node.js) 풀이 본문

ALGORITHM/BOJ (Node.js)

백준 10430 javascript (node.js) 풀이

thisisyjin 2021. 12. 6. 11:36

입출력과 사칙연산 - (10)

 


 

💡문제

(A+B)%C는 ((A%C) + (B%C))%C 와 같을까?

(A×B)%C는 ((A%C) × (B%C))%C 와 같을까?

세 수 A, B, C가 주어졌을 때, 위의 네 가지 값을 구하는 프로그램을 작성하시오.

📁입력

두 자연수 A와 B, C가 주어진다. (1 ≤ A, B , C≤ 10,000)

📈출력

첫째 줄에 (A+B)%C, 둘째 줄에 ((A%C) + (B%C))%C, 셋째 줄에 (A×B)%C, 넷째 줄에 ((A%C) × (B%C))%C를 출력한다.

 


< 코드 >

 

const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().split(' ');

const a = Number(input[0]);
const b = Number(input[1]);
const c = Number(input[2]);

console.log((a + b) % c);
console.log(((a % c) + (b % c)) % c);
console.log((a * b) % c);
console.log(((a % c) * (b % c)) % c);

 

 

+) 참고


const A = parseInt(input[0]);
const B = parseInt(input[1]);

const C = parseInt(input[2]);

 

부분은

 

const [A,B,C] = input;

과 같이 선언할 수도 있다.

 

 

++) parseInt와 Number의 차이

 

A,B,C가 '정수' 또는 '자연수'라는 말이 없었으므로

parseInt를 쓰면 안된다.

 

Number() 함수를 이용하면 type을 number로 바꿀 수 있다.+) 마찬가지로, String()또한 마찬가지임!

 

💡 주의!
Number()과 String() 모두 자바스크립트에 기본으로 내장된 함수(function)임.
맨 앞글자를 대문자(upperCase)로 써주기!

 

 

< 느낀 점>

 

 

input 에서 split('')로 써놓고 한참동안 왜 틀렸지.? 이러고 있었다.

역시 프로그래머의 최대의 적은 오타 (...)

왜 괜히 string도 변수로 저장하는지 뼈져리게 느꼈다. 

 

또한,,, 문제를 잘 읽어야 한다는 것도..

당연히 정수라고 생각하고 parseInt부터 써버리지말자.

 

- BOJ에서는 parseInt도 정답처리 해주긴 한다.  암튼 이건 예외적으로 따로 생각하자.

실수가 입력되면 안되니까.

 

 

+) String()과 tostring의 차이

 

- 숫자->문자열 변환시 차이는 없다.

- tostring은 default가 10진수일 뿐이지, 2~32진수 변환도 할 수 있다는 점이 차이이다.

Number.prototype.toString()