문제 

0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.

 

입력

첫째 줄에 정수 N(0 ≤ N ≤ 12)이 주어진다.

 

출력 

첫째 줄에 N!을 출력한다.

 

예제1 

입력: 10

출력: 3628800

 

예제2

입력: 0

출력: 1

 

코드

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

function factorial(num) {
    if (num <= 1) {
        return 1;
    }
    return num * factorial(num - 1);
}

console.log(factorial(input));

 

 

입력

 

1. readline 모듈

처음 생성 시 createInterface를 통해 input, output을 설정해준다.

다음에, 입력을 갖고 처리할 callback함수인 function(line)을 설정해준다.

기본적으로 매개변수 line에 할당되는 것이 입력값이며, 문자열로 할당된다.

const readline = require('readline');
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

let input = [];

rl.on('line', function (line) {
    // 입력 처리
    //input = line.split(' ').map((el) => parseInt(el)); 
  })
  .on('close', function () {
    // 출력
    //console.log();
    process.exit();
  });

 

 

2. fs 모듈

fs 모듈은 FileSystem의 약자로 파일 처리와 관련된 모듈이다.

  2-1) readFile()

        filename의 파일을 [options]의 방식으로 읽은 후 callback으로 전달된 함수를 호출한다. (비동기적)

fs.readFile(filename, [options], callback)

 

  2-2) readFileSync()

        filename의 파일을 [options]의 방식으로 읽은 후 문자열을 반환한다. (동기적)

fs.readFileSync(filename, [options])

 

Sync가 붙은 것은 동기적 읽기, 붙지 않은 것은 비동기적 읽기이다.
동기적 읽기로 읽게 되면 파일을 읽으면서 다른 작업을 동시에 할 수 없다.
하지만 비동기적으로 읽으면 파일을 읽으면서 다른 작업도 동시에 수행할 수 있고,
파일을 다 읽으면 매개변수 callback으로 전달한 함수가 호출된다.

[options]에는 보통 인코딩 방식이 오게 되며 웹에서는 utf8을 주로 사용한다.

 

 

// 문자 하나만 입력받을 경우
let input = require("fs").readFileSync("/dev/stdin").toString()

//숫자로 변환
let num = Number(input)

// 한칸 띄어쓰기로 구분
// input[0], input[1] 배열에서 꺼내쓰면 된다.
let input = require("fs").readFileSync("/dev/stdin").toString().split(" ")

// 줄바꿈으로 구분
let input = require("fs").readFileSync("/dev/stdin").toString().split("\n")
let count = input[0];
let numbers = [];

for (let i = 1; i < input.length; i++) {
  if (input[i] !== '') {
    numbers.push(input[i].split(' '));
  }
}

for (let i = 0; i < numbers.length; i++){
  let num1 = Number(numbers[i][0]);
  let num2 = Number(numbers[i][1]);

  //console.log(num1 + num2);
}

 

 

 

 

출력

 

console.log()

 

 

 

 

[출처] 

https://velog.io/@hjkdw95/%EB%B0%B1%EC%A4%80-Node.js-%EC%9E%85%EC%B6%9C%EB%A0%A5-%EC%A0%95%EB%A6%AC

https://velog.io/@exploit017/%EB%B0%B1%EC%A4%80Node.js-Node.js-%EC%9E%85%EB%A0%A5-%EB%B0%9B%EA%B8%B0

 

'Coding > Reference' 카테고리의 다른 글

Visual Studio Code에서 C# 실행  (0) 2021.09.27
Visual Studio Code에서 JavaScript 실행  (0) 2021.09.10
JavaScript 사용할 때 주의할 점  (0) 2021.08.24

 

문제 

Given a sorted array of distinct integers and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.

You must write an algorithm with O(log n) runtime complexity.

 

 

입출력

Example 1:

Input: nums = [1,3,5,6], target = 5

Output: 2

 

Example 2:

Input: nums = [1,3,5,6], target = 2

Output: 1

 

Example 3:

Input: nums = [1,3,5,6], target = 7

Output: 4

 

Example 4:

Input: nums = [1,3,5,6], target = 0

Output: 0

 

Example 5:

Input: nums = [1], target = 0

Output: 0

 

 

제약

Constraints:

  • 1 <= nums.length <= 10^4
  • -10^4 <= nums[i] <= 10^4
  • nums contains distinct values sorted in ascending order.
  • -10^4 <= target <= 10^4

 

 

코드

var searchInsert = function(nums, target) {
    let result = 0;
    for(i=0; i<nums.length; i++) {
        if(nums[i]>=target) {
            return i;
        }
        else if(i===nums.length-1){
            return i+1;
        }
    }
};




+ Recent posts