Problem Solved/BOJ

[정렬] node.js 백준 2751번 - 수 정렬하기 2

YJ_SW 2024. 4. 5. 21:04
728x90

백준 2751번 - 수 정렬하기 2

정렬 문제, join, console.log() 

문제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.

입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.

출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.

풀이

sort() 함수 활용

let [num,...input] = require('fs')
    .readFileSync('/dev/stdin', 'utf-8')
    .trim()
    .split('\n')
    .map((s) => Number(s));

let sorted = input.sort((a,b)=>a-b)

sorted.forEach(n=>{
	console.log(n)
})

시간초과 결과가 나와서 구글링 해보니

console.log()가 느려서 정렬된값 하나마다 호출하시면 최대 100만번 호출되어 시간 초과 결과나 나온다.

join() 메소드 활용

join() 메서드는 배열의 모든 요소를 쉼표나 지정된 구분 문자열로 구분하여 연결한 새 문자열을 만들어 반환합니다.

join() 메소드를 활용하여 배열을 ‘\n’로 구분하여 출력하니 통과되었다.

let [num,...input] = require('fs')
    .readFileSync('dev/stdin.txt', 'utf-8')
    .trim()
    .split('\n')
    .map((s) => Number(s));

let sorted = input.sort((a,b)=>a-b)

console.log(sorted.join("\n"))
 

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

 

2751번: 수 정렬하기 2

첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.

www.acmicpc.net

 

728x90