[JS] 10430번 나머지 / Number보다 parseInt를 더 권고하는 이유

    10430번 나머지

    https://www.acmicpc.net/problem/10430

     

    10430번: 나머지

    첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000)

    www.acmicpc.net

    문제

    • (A+B)%C는 ((A%C) + (B%C))%C 와 같을까? (A×B)%C는 ((A%C) × (B%C))%C 와 같을까? 세 수 A, B, C가 주어졌을 때, 위의 네 가지 값을 구하는 프로그램을 작성하시오.
    • 첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000)
    • 첫째 줄에 (A+B)%C, 둘째 줄에 ((A%C) + (B%C))%C, 셋째 줄에 (A×B)%C, 넷째 줄에 ((A%C) × (B%C))%C를 출력한다.

    풀이

    const fs = require('fs');
    const inputData = fs.readFileSync(0,'utf8').toString().split(" ");
    const A = parseInt(inputData[0]);
    const B = parseInt(inputData[1]);
    const C = parseInt(inputData[2]);
    
    const result1 = (A+B)%C ;
    const result2 = ((A%C) + (B%C))%C;
    const result3 = (A*B)%C ;
    const result4 = ((A%C)*(B%C))%C ;
    
    console.log(`${result1}\n${result2}\n${result3}\n${result4}`);

    벡터를 이용하여 ${변수}\n꼴로 만들어 줄마다 값을 출력시켰다.

    참고

    • 다른 코드와 비교
      • 입력값을 array로 받아 활용
      • const [A,B,C] = inputData ;
    • 문자열을 숫자열로 형변환 하는 방법
      1.parseInt()
      문자열을 '정수'로 변환
      '숫자+문자'꼴은 숫자만 출력 '문자+숫자'꼴은 NaN
    • 2.Number()
      문자열을 '숫자'로 변환 (소수점까지 숫자타입으로 가져 올 수 있음.)
      숫자꼴만 리턴하고 문자가 들어가면 NAN
    
    const test = Number("123가나다");
    const test2 = Number("가나다123"); 
    console.log(test); // Nan 
    console.log(test2); // NaN 
    
    const test = parseInt("123가나다");
    const test2 = parseInt("가나다123");
    console.log(test); // 123  
    console.log(test2); // NaN

    parseInt가 문자와 숫자가 섞였을때 안전하게 숫자만 바꿔준다는 장점 때문에 Number보다 사용을 권고함.


    댓글