관리 메뉴

Silver Library

이해 가능해 보이는 코드 - 10952번 JS 본문

자료 구조 <Data Structure>/JavaScript

이해 가능해 보이는 코드 - 10952번 JS

Silver Archmage 2021. 10. 12. 21:27

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

 

10952번: A+B - 5

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

해석:

let input = require('fs').readFileSync('/dev/stdin').toString().split('\n');

-> toString 과 split 이 쓰인다는 것만 인지. 나머지 앞의 의미는, 솔직히 지금은 이해불가.

 

let i = 0;

-> 사실, 이게 아래의 for (let i=0; i < input.length... 부분인데...

이 쪽이 더 이해하기는 좋으므로, 이걸 채택.

 

while (i < input.length) 

-> 차라리 직관적이다.

 

let A = parseInt(input[i].split(' ')[0]);

-> A 변수 지정 후, 이걸 input에서 들어오는 문자열을 i = 0 으로 인식.

-> 이걸, parseInt 로 해서 문자열을 numeric 화.

-> 그 자체를, split 해서 표기. 참고로 이 짓의 목적은...

1 1
2 3
3 4
9 8
5 2
0 0

문제에서 요구한 대로, 이렇게 표현하기 위한 것.

 

잠깐, 침착하자! 도대체 저 [0] 은 어쩌라는건가? 하고 멘붕이 올 수 있다.

그래서, 아래에 result 변수로, A+B 를 지정한다. 편의상, [0], [1] 은 그냥 배열 순서 = A[0], B[1] 정도로 여기겠다.

(하지만 자료 구조를 생각해보면, 이는 정황상 맞는듯하다.)

let input = require('fs').readFileSync('/dev/stdin').toString().split('\n');

let i = 0;

while(i < input.length) {
    let A = parseInt(input[i].split(' ')[0]);
    let B = parseInt(input[i].split(' ')[1]);
    let result = A+B;
    
    if(result == 0){
        break;
    } else {
        console.log(result);
    }
    i++;
}


//for (let i=0; i < input.length -2 ; i++) {
//    let numbers = input[i].split(' ');  
    //console.log(Number(numbers[0]) + Number(numbers[1]));
//}

그럼 마지막으로, if(result == 0)

-> 만약 A+B 의 결과값이 0이면 -> break.

else

-> 즉, 0 아닌 아무 결과값이면 result 결과값을 출력하라!

 

i++; -> 해당 수 대로 더하라.

 

예제 입력 --> 예제 출력:

1 1 // 2
2 3 // 5
3 4 // 7
9 8 // 17
5 2 // 7
0 0 //
0 Comments
댓글쓰기 폼