Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- math
- 이벤트
- array
- Step2
- spread operator
- continue문
- 삼항연산자
- 자바스크립트
- 유튜브 올리버쌤
- web
- Event
- for문
- hanq
- 이벤트핸들러
- break문
- 올리버쌤
- 이클립스
- 유뷰브 올리버쌤
- java
- JDK
- egov
- 자바
- 취업반
- javascript
- es6
- 한큐에자바
- position
- Youtube 올리버쌤
- 한큐
- 전자정부프레임워크
Archives
- Today
- Total
호다닥
2등 찾기 (두번째 큰값) 본문
첫 번째 풀이
우선 1등과 2등에 해당하는 변수를 만들어 준다. 그리고 arr의 가장 첫번째 값을 초기값으로 지정해준다.
var first = arr[0]; var second = arr[0];
arr의 두 번째 숫자부터 마지막 숫자까지 반복을 해주되,
그 안에서 1등과 2등을 매번 업데이트한다.
arr[i]가 1등보다 크거나 같을 경우, 1등과 2등을 함께 업데이트 한다.
arr[i]가 1등보다는 작지만 2등보다 클 경우에는 2등만 업데이트 해준다.
for (var i = 1; i < arr.length; i++) { if (arr[i] >= first) { second = first; first = arr[i]; } else if (arr[i] > second) { second = arr[i]; } }
그리고 마지막에 2등 값을 리턴하면 코드가 완성된다.
function getSecondBiggestNumber(arr) { var first = arr[0]; var second = arr[0]; for (var i = 1; i < arr.length; i++) { if (arr[i] >= first) { second = first; first = arr[i]; } else if (arr[i] > second) { second = arr[i]; } } return second; } // 테스트 코드 console.log(getSecondBiggestNumber([4, 7, 2, 1, 9, 3, 6, 5])); console.log(getSecondBiggestNumber([80, 2, 44, 21, 92, 3, 51])); console.log(getSecondBiggestNumber([4, 7, 6, 5]));
두 번째 풀이
배열에서 가장 큰 값을 찾은 후에, 배열에서 해당값의 인덱스 값을 찾는다.
그리고 해당 인덱스의 값을 0으로 초기화 해준 뒤에 다시 배열의 최대값을 찾아 리턴한다.
'알고리즘 문제' 카테고리의 다른 글
문자 개수 세기 (0) | 2018.10.03 |
---|---|
배열 만들기2 ( 2중배열 하나로 통합하기+내부배열 순서바꾸기 ) (0) | 2018.10.02 |
배열만들기 (0) | 2018.10.02 |
팩토리얼 (0) | 2018.10.01 |
삼각형 그리기 (별찍기) (0) | 2018.10.01 |
Comments