본문 바로가기

백준/JavaScript

[JS] 백준 1차원 배열 - 두 번째 이야기

728x90

 

배아파...

그래도 풀어야지...

 

문제 10871번

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

 

10871번: X보다 작은 수

첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다.

www.acmicpc.net

 

일단 줄을 기준으로 입력받은 다음 공백을 기준으로 나누면 될 것 같다. 그런데 둘째 줄은 어떻게 받을지 고민하다가 다른 분이 배열을 만들어 그 안에 넣는 것을 보고 괜찮은 것 같아서 나도 그 방법을 사용하였다.

 

const fs = require('fs');
//백준에 제출할 때 써야하는 코드
const readFileSyncAdress = '/dev/stdin';
//테스트
//const readFileSyncAdress = 'input.txt';

const input = fs.readFileSync(readFileSyncAdress).toString().trim().split('\n');
const N = input[0].split(' ')[0];
const X = input[0].split(' ')[1];

let numbers=[];
numbers = input[1].split(' ');

let result='';
for(let i=0;i<N;i++){
    if(Number(numbers[i])<X){
        result+=numbers[i]+' ';
    }
}
console.log(result);

 

 

이렇게 배열에 넣고 하나씩 X보다 작은지 비교하니까 편한 것 같다.

 

 

[참고] https://velog.io/@exploit017/%EB%B0%B1%EC%A4%80Node.js-10871%EB%B2%88X%EB%B3%B4%EB%8B%A4-%EC%9E%91%EC%9D%80-%EC%88%98

 

 

 

문제 10818번

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

 

10818번: 최소, 최대

첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.

www.acmicpc.net

음... 이 문제는 입력을 받은 후에 첫번째 값을 일단 max와 min에 넣어준 후 for문을 이용하여 각각 다음 숫자와 비교하면 될 것 같다.

const fs = require('fs');
//백준에 제출할 때 써야하는 코드
const readFileSyncAdress = '/dev/stdin';
//테스트
//const readFileSyncAdress = 'input.txt';

const input = fs.readFileSync(readFileSyncAdress).toString().trim().split('\n');
const N = input[0];

let numbers=[];
numbers = input[1].split(' ');

let result='';
let max,min;
max = Number(numbers[0]);
min = Number(numbers[0]);
for(let i=1;i<N;i++){
    if(Number(numbers[i])>max){
        max=Number(numbers[i]);
    }
    if(Number(numbers[i])<min){
        min=Number(numbers[i]);
    }
}
console.log(min+' '+max);

 

 

 

다른 분은 어떤 식으로 풀었는지 찾아보니 sort로 푼 것을 보았다. numbers에 공백을 기준으로 나눈 값들을 다 넣어주고, numbers.sort((a,b) => a-b); 이런 식으로 오름차순 정렬을 해준 후 맨 처음과 마지막 값을 출력해줬다.

그런데 sort 메소드를 사용한 답안의 시간 소요가 더 많았다고 한다.

 

 

[참고] https://codingmyoni.tistory.com/entry/%EB%B0%B1%EC%A4%80-10818-%EC%B5%9C%EC%86%8C-%EC%B5%9C%EB%8C%80javascript

 

 

 

오늘은... 여기까지... 그럼 이만...

728x90