본문 바로가기

알고리즘 코딩

사용자가 입력한 대로 반복 해서 별을 출력해주는 알고리즘 (인터넷 버전)

간단한 알고리즘 문제를 풀어 봤다. 문제는 아래 링크 참조 바란다.

https://school.programmers.co.kr/learn/courses/30/lessons/12969?language=javascript

 

간단한 문제이니 바로 답안 코드를 제시하는 게 좋겠다.  repeat 메서드를 기억하자. 이건 아쉬우니 나만의 for 문으로도 만들어 봐야겠다.

process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
    const n = data.split(" ");
    const a = Number(n[0]), b = Number(n[1]);
for (let i = 0; i < b; i++){ 
  console.log(`${'*'.repeat(a)}`)
    }
});

문제나 답이나 특별한 건 없다.  내가 다른 사람 코드를 그대로 가져왔다는 게 문제일 뿐. 구글링과 베끼기의 차이는 뭘까? 이 알고리즘 문제는 검색만 했다 하면 바로 답이 나와 버리니, 구글링이 곧 베끼기가 되어 버리기 쉽다. 

 

그럼에도 내가 겪었던 문제 한가지를 정리해 보자. 나중에 참고하기 위해서. 아래 부분은 도대체 뭘까?

process.stdin.on()

process.stdin는  node.js 의 프로퍼티 중 하나인데 자체 내장 api 이다. 사용자가 입력한 데이터를 받아서 그 안의 함수를 실행해 준다.

아주 간단한 예시는 아래와 같다.

process.stdin.on('data', data => {
    console.log(`You typed ${data.toString()}`);
    process.exit();
  });

이걸 js 파일에 넣고 터미널에서 node.js 로 돌리면 사용자가 데이터를 입력할 수 있는데 그 데이터가 위 코드의 data에 실려서 함수가 실행된다. 자세한 내용은 아래 링크 참조하면 된다.

https://www.geeksforgeeks.org/node-js-process-stdin-property/

 

할게 없으면 링크로 들어와서 node.js api 들을 갖고 놀아도 된다. ^^