호다닥

2등 찾기 (두번째 큰값) 본문

알고리즘 문제

2등 찾기 (두번째 큰값)

3jun 2018. 10. 1. 14:06

첫 번째 풀이

 

우선 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