| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
Tags
- 1789 node.js
- 백준25176
- 모던자바스크립트
- 백준1789
- 개발자
- Javascript
- flex box
- 노마드스터디
- 모던자바스크립트DeepDive
- 21313 nodejs
- 11047 node.js
- 자바스크립트 일급객체
- 1931 node.js
- 백준21313
- 모던자바스크립트 딥다이브
- 자바스크립트 함수
- 백준1026
- 코딩
- IT5분잡학사전
- 노개북
- 노마드북클럽
- 자바스크립트 딥다이브
- 개인프로젝트
- CSS flex
- 14655 nodejs
- 11399 node.js
- 2217 node.js
- const
- 1541 node.js
- 1026 node.js
Archives
- Today
- Total
캐또's coding
2562 - 최댓값 - node.js 본문
문제
9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오.
예를 들어, 서로 다른 9개의 자연수
3, 29, 38, 12, 57, 74, 40, 85, 61
이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다.
입력
첫째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100 보다 작다.
출력
첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 몇 번째 수인지를 출력한다.
예제 입력 1 복사
3
29
38
12
57
74
40
85
61
예제 출력 1 복사
85
8
알고리즘 분류
가장 큰 수를 찾고 원래 주어진 숫자 중에서 몇 번째였는지를 반환하면 되는 문제,
const input = require("fs").readFileSync("/dev/stdin").toString().split("\n").map(Number);
function arrsort(e) {
return e.concat().sort((a, b) => {
return b - a;
});
}
const bigNum = arrsort(input)[0];
const bigNumIndex = input.findIndex((e) => e == bigNum);
console.log(`${bigNum}\n${bigNumIndex +1}`);
sort를 사용했다. sort를 사용했을 때 원래의 배열 그러니까 input이라고 해둔 것이 같이 변환되는 것이 문제였다.
왜냐면 input이 원래 상태 그대로 있어야 그 다음에 찾은 가장 큰 수가 몇 번째에 있었는지 알 수 있기 때문이다. 이를 위해 함수 안에서 concat()을 이용해서 정렬했다. 내림차순 정렬을 했기 때문에 arrsort의 0번째가 가장 큰 수가 되고, 가장 큰 수 그리고 가장 큰 수의 번호를 찾아서 줄넘김을 해서 출력해주면 정답.
'기초 공부 > 백준 문제 풀이' 카테고리의 다른 글
| 1546 - 평균 - node.js (40번째) (0) | 2022.08.17 |
|---|---|
| 3052 - 나머지 - node.js (0) | 2022.08.17 |
| 10818 - 최소, 최대 - node.js (0) | 2022.08.17 |
| 1110 - 더하기 사이클 - node.js (0) | 2022.08.17 |
| 10951 - A + B - 4 - node.js (0) | 2022.08.16 |
Comments