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

 

1427번: 소트인사이드

첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.

www.acmicpc.net

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

const arr = input.split("").map(i =>  Number(i));

arr.sort(function(a,b) {
    return b - a;
});

console.log(arr.join(""));
728x90

좌표 정렬하기

 

11650번: 좌표 정렬하기

첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.

www.acmicpc.net

 

내 코드

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

const N = Number(input.shift());
const dic = [];

for(let i = 0 ;i < N ; i++) {
    const [x,y] = input[i].split(" ").map(i => Number(i));
    dic.push([x,y]);
}

dic.sort(function(a,b) {
    if(a[0] < b[0]) return -1;
    else if(a[0] > b[0]) return 1;
    else {
        if(a[1] < b[1]) return -1;
        else if(a[1] > b[1]) return 1;
        else {
            return 0;
        }
    }
})

const answer = [];
dic.forEach((d) => {
    answer.push(d[0]+' '+d[1]);
})

console.log(answer.join('\n'));
728x90

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

 

10828번: 스택

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지

www.acmicpc.net

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

const N = Number(input[0]);
const stack = [];
const result = [];

for(let i = 0 ;i < N ; i++) {
    const command = input[i+1].split(" ");
    if(command[0] === 'push') {
        stack.push(Number(command[1]));
    } else if(command[0] === 'pop') {
        result.push(stack.length === 0 ? -1 : stack.pop());
    } else if(command[0] === 'size') {
        result.push(stack.length);
    } else if(command[0] === 'empty') {
        result.push(stack.length === 0 ? 1 : 0);
    } else if(command[0] === 'top'){
        result.push(stack.length === 0 ? -1 : stack[stack.length-1]);
    }
}

console.log(result.join("\n"));
728x90

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

 

10845번: 큐

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지

www.acmicpc.net

const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().trim().split("\n");
const N = Number(input.shift());
const queue = [];
const answer = [];

for(let i = 0 ; i < N ; i++) {
    const [command, value] = input[i].split(" ");
    if(command === 'push') {
        queue.push(Number(value));
    } else if( command === 'pop') {
        if(queue.length === 0 ) answer.push(-1);
        else answer.push(queue.shift());
    } else if(command === 'empty') {
        if(queue.length === 0 ) answer.push(1);
        else answer.push(0);
    } else if(command === 'size') {
        answer.push(queue.length);
    } else if(command === 'front') {
        if(queue.length === 0 ) answer.push(-1);
        else answer.push(queue[0]);
    } else if(command === 'back') {
        if(queue.length === 0 ) answer.push(-1);
        else answer.push(queue[queue.length-1]);
    }
}

console.log(answer.join('\n'));

처음에 제출한 거 시간초과 걸렸는데 매번 console 찍어줘서 시간초과 난 거였음.

answer 배열에 모두 넣은 후 한 번에 출력하는 방식으로 바꿔서 통과됨.

728x90

+ Recent posts