반응형
Link
문제
N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.
입력 > 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.
출력 >첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.
| 예제 입력
5
20 10 35 30 7
| 예제 출력
7 35
제출
const input = (
process.platform === "linux"
? require("fs").readFileSync("/dev/stdin").toString()
: `5
20 10 35 30 7`
).split("\n");
let count = Number(input[0]);
let numbers = input[1].split(" ").map(Number);
let min = numbers[0];
let max = numbers[0];
for (let i = 1; i < count; i++) {
if (max < numbers[i]) {
max = numbers[i];
}
if (min > numbers[i]) {
min = numbers[i];
}
}
console.log(`${min} ${max}`);
풀이과정
최대, 최솟값을 설정한 후, 입력된 정수의 개수만큼 for문을 돌려서 숫자를 비교하면 되는 문제이다.
- sort 메소드를 사용하여 푸는 방법
const input = (
process.platform === "linux"
? require("fs").readFileSync("/dev/stdin").toString()
: `5
20 10 35 30 7`
).split("\n");
let count = Number(input[0]);
let numbers = input[1].split(" ").map(Number);
numbers.sort((a, b) => a - b);
console.log(`${numbers[0]} ${numbers[count - 1]}`);
🔼 sort로 입력값들을 오름차순으로 정렬한 후 첫 번째 값을 최솟값, 마지막 값을 최대값으로 출력한다.
개념
Array.sort()
- 매개변수로 정렬 함수를 작성하고, 함수를 작성하지 않을 시에는 문자열의 유니 코드 코드 포인트에 따라 정렬된다.
Comment
sort 메소드를 사용한 답안이 시간 소요가 더 많았다.
틀린 제출은 min, max의 값을 따로 대입해주지 않고 계속 같이 넣어서 min 값이 undefined가 되어 틀렸던 ...😅
// 잘못된 코드
let min, max = 0;
// 의도했던 코드
let min = 0,
max = 0;
...
반응형
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준] 2577: 숫자의 개수(javascript) (0) | 2022.06.14 |
---|---|
[백준] 2562: 최댓값(javascript) (0) | 2022.06.14 |
[백준] 1110: 더하기 사이클(javascript) (0) | 2022.06.14 |
[백준] 10951: A + B - 4 (javascript) (0) | 2022.06.14 |
[백준] 10952: A+B - 5 (javascript) (0) | 2022.06.14 |