Silver Library (Archived)
이해 가능해 보이는 코드 - 10952번 JS 본문
https://www.acmicpc.net/problem/10952
해석:
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 //
'CS Library > JavaScript - Data Structure' 카테고리의 다른 글
REST API 와 fetch에 대한 간단 기록. (0) | 2022.07.03 |
---|---|
2675번 - 백준 JS (0) | 2021.10.22 |
Prototype 을 요약해보기. (0) | 2021.09.08 |
연결 리스트와 이진 트리 (0) | 2021.09.07 |
다시봐도 헷깔리는 While 문 (0) | 2021.08.25 |