[백준 Node.js] while문

goum·2021년 8월 3일
0

BAEKJOON Online Jubge

목록 보기
5/5
post-thumbnail

4단계 while문을 사용해 봅시다.


[10952] A+B - 5

문제

0 0이 들어올때까지 A+B를 출력하는 문제
https://www.acmicpc.net/problem/10952

code

const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n');
let i = 0;
while(input[i] !== '0 0') {
    let numbers = input[i].split(' ');
    console.log(Number(numbers[0]) + Number(numbers[1]))
    i++;
}

comment

이번 단계가 while문 사용해 보기 이기 때문에 while 문을 이용해 풀었다. 문제를 보고 조건을 '0 0'으로 체크했는데 length로 체크 하는편이 더 명확하게 코드를 파악할 수 있을거같다.


[10951] A+B - 4

문제

입력이 끝날 때까지 A+B를 출력하는 문제. EOF에 대해 알아 보세요.
https://www.acmicpc.net/problem/10951

code

// length 체크를 통한 풀이
const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n');
const inputCount = input.length;
let i = 0;
while(i < inputCount) {
    let numbers = input[i].split(' ');
    console.log(Number(numbers[0]) + Number(numbers[1]))
    i++;
}
// 예외처리를 이용한 풀이
const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n');
let i = 0;
while(true) {
    try{
        let numbers = input[i].split(' ');
        console.log(Number(numbers[0]) + Number(numbers[1]))
        i++;    
    } catch {
        break;    
    }
}

comment

이번 문제는 테스트케이스의 끝을 알리는 값이 존재하지 않아을때 생기는 EOF 에러에 처리에 관한 문제였다.
length로 체크해서 간단하게 풀었지만, EOF와 예외처리에 대해 알고싶어서 더 찾아보았다. 그리고 javascript에 있는 예외처리문으로도 풀이가 가능했다.

파일 끝(End of File, EOF)는 데이터 소스로부터 더 이상 읽을 수 있는 데이터가 없음을 나타낸다.


[1110] 더하기 사이클

문제

원래 수로 돌아올 때까지 연산을 반복하는 문제
https://www.acmicpc.net/problem/1110

풀이

처음받아온 수와 같지 않으면
받아온 두자리 수의 각자리수를 더한다.
받아온수와 자릿수합의 일의자리를 붙여 새로운수를 만든다.
카운트 ++
같다면 카운트 출력
이렇게 적어두고 코드로 변환시켰다.

code

const input = require('fs').readFileSync('/dev/stdin').toString().trim();
let num = Number(input);
let count = 0;
let sum;
let nNum = num;
while(num !== nNum || count === 0) {
    sum = parseInt(nNum/10) + nNum%10;
    nNum = nNum%10*10 + sum%10;
    count++;
}
console.log(count);

comment

처음에 while의 생각해내고 보니 너무 간단한거였지만 조건문을 어떻게 해야하나 고민하느라 시간이 걸렸다. 이문제의 포인트는 숫자들의 각자릿수를 구해내는것과 그것을 어떻게 다시 합쳐줄것인지 였던거같다.


참고

자바스크립트 제어흐름과 에러처리 - MDN
10951 파이썬 풀이
try? catch? 예외처리란 뭐 하는건가요? - 얄팍한 코딩사전

0개의 댓글