https://www.acmicpc.net/problem/10818
문제
N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.
출력
첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.
예제 입력 1 복사
5
20 10 35 30 7
예제 출력 1 복사
7 35
풀이
input의 값을 Number을 사용하여 숫자형으로 변환을 시켜줬다.
첫번째 값을 max와 min값으로 지정한뒤, for loop을 사용하여 주어진 배열의 값들과 하나씩 비교하며
max와 min값을 비교하고 마지막에 값을 출력해 주었다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
var input = require('fs').readFileSync('/dev/stdin').toString().split('\n');
var count = Number(input[0]);
var numbers = input[1].split(' ').map((x) => Number(x));
var max = numbers[0];
var min = numbers[0];
for (var i = 1; i < count; i++) {
if (max < numbers[i]) {
max = numbers[i];
}
if (min > numbers[i]) {
min = numbers[i];
}
}
console.log(`${min} ${max}`);
|
cs |
+ 다른 코트 풀이
sort() 메서드를 사용해서 문제를 풀어보았다.
sort 메서드를 내림차순으로 정렬을하면 numbers의 배열에서 0번째 값이 최솟값이 되고
numbers 배열의 마지막 인덱스(count -1)가 최댓값이 된다.
1
2
3
4
|
let input = require('fs').readFileSync('/dev/stdin').toString().split('\n');
let count = Number(input[0]);
let numbers = input[1].split(' ').map((x) => Number(x)).sort((a, b) => a - b);
console.log(numbers[0] + ' ' + numbers[count - 1]);
|
cs |
map 관련 추가 설명은 하단 링크에 참고
parseInt(), Number()의 차이는 하단 링크 참고
sort 관련 추가 설명은 하단 링크 참고
https://codesign.tistory.com/136?category=995452
'코딩 문제 > 백준 [ Node.js ]' 카테고리의 다른 글
[ 백준 2441 / Node.js ] 별 찍기 - 4 (0) | 2022.08.28 |
---|---|
[ 백준 5622 / Node.js ] 다이얼 (0) | 2022.08.28 |
[ 백준 1330 / Node.js ] 두 수 비교하기 (0) | 2022.08.26 |
[ 백준 2438 / Node.js ] 별 찍기 -1 (0) | 2022.08.26 |
[ 백준 10926 / Node.js ] ??! (0) | 2022.08.25 |
댓글