https://www.acmicpc.net/problem/2562
문제
9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오.
예를 들어, 서로 다른 9개의 자연수
3, 29, 38, 12, 57, 74, 40, 85, 61
이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다.
입력
첫째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100 보다 작다.
출력
첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 몇 번째 수인지를 출력한다.
const nums = require('fs').readFileSync('/dev/stdin').toString().split('\n').map(Number);
let max = nums[0];
let count = 0;
for(let i=1; i<9; i++){
if(nums[i]>max){
max = nums[i];
count = i;
}
}
console.log(max);
console.log(count+1);
console.log(max+"\n"+count+1) 이렇게 하면 백준 사이트에서 틀렸다고 채점돼서 각각 출력해주었다.
Math.max()와 indexOf()를 사용한 방법
Math.max()는 입력값으로 받은 0개 이상의 숫자 중 가장 큰 숫자를 반환한다.
console.log(Math.max(1, 3, 2));
// expected output: 3
const array1 = [1, 3, 2];
console.log(Math.max(...array1));
// expected output: 3
indexOf()는 배열에서 요소의 인덱스를 반환한다.(없으면 -1 반환)
const nums = require('fs').readFileSync('/dev/stdin').toString().split('\n').map(Number);
let max = Math.max(...nums);
console.log(max);
console.log(nums.indexOf(max)+1);
'ALGORITHM' 카테고리의 다른 글
[백준/ node.js] 배열 - 3052번 나머지 (0) | 2021.06.30 |
---|---|
[백준/ node.js] 배열 - 2577번 숫자의 개수 (0) | 2021.06.29 |
[백준/ node.js] 배열 - 10818번 최소, 최대 (0) | 2021.06.27 |
[백준/ node.js] while문 - 1110번 더하기 사이클 (0) | 2021.06.26 |
[백준/ node.js] while문 - 10951번 A+B-4 (0) | 2021.06.25 |