https://school.programmers.co.kr/learn/challenges/beginner?order=acceptance_desc
코딩테스트 입문 | 프로그래머스 스쿨
코딩테스트에 처음 도전하는 사람들을 위한 입문 문제 모음. 쉬운 문제부터 하나씩 도전해 보면서 코딩테스트에 자신감도 붙이고 문제 해결 능력을 키워보세요!
school.programmers.co.kr
문제 출처
<가장 큰 수 찾기>
[문제 설명]
정수 배열 array가 매개변수로 주어질 때, 가장 큰 수와 그 수의 인덱스를 담은 배열을 return 하도록 solution 함수를 완성해보세요.
[제한사항]
1 ≤ array의 길이 ≤ 1000 ≤ array 원소 ≤ 1,000array에 중복된 숫자는 없습니다.
[입출력 예]
array result
[1, 8, 3] [8, 1]
[9, 10, 11, 8] [11, 2]
처음엔 sort를 이용해서 오름차순을 만든 후 인덱스[0]을 찾아 가장 큰 수를 찾고 그 다음 array배열에서 인덱스 값을 찾으려고 했다 그런데 가장 큰 수를 찾는 건 쉬웠으나 array배열에서 인덱스 값이 찾아지지 않고 계속 0을 반환했다 ㅠㅠ
나의 처음 틀린 답
function solution(array) {
var answer = [];
let a = array.sort((a,b) => b-a);
answer.push(a[0]);
for(let i = 0; i < array.length; i++) {
if (a[0] === array[i]) {
answer.push(array.indexOf(array[i]));
}
}
return answer;
}
그렇게 혹시 배열에서 가장 큰 수를 찾는 다른 방법이 있나 찾던 중
배열에서 최댓값을 찾는 Math.max() 함수를 발견했고 문제를 풀 수 있었다.
나의 정답
function solution(array) {
var answer = [];
let maxnum = Math.max(...array);
let maxindex = array.indexOf(Math.max(...array));
answer.push(maxnum,maxindex);
return answer;
}
다른 분의 풀이
function solution(array) {
let max = Math.max(...array);
return [max, array.indexOf(max)];
}
나와 같은 방법으로 푼 방법인데 더 짧게 하는 방법이 있었다...!!
더 짧게 푸는 방법을 알 수 있었고 Math.max()도 알게 된 문제였따
'자료구조 & 알고리즘 > 코딩테스트' 카테고리의 다른 글
[JavaScript/코딩테스트] 코테 입문 <직사각형 넓이 구하기> (0) | 2024.03.27 |
---|---|
[JavaScript/코딩테스트] 코테 입문 <잘라서 배열로 저장하기> (0) | 2024.03.26 |
[JS 코딩테스트] 코테 입문 수학 <합성수 찾기> , <팩토리얼> 풀기 (0) | 2024.03.15 |
[JS 코딩테스트] 코테 입문 수학 "개미 군단" 풀기 (0) | 2024.03.07 |
[JS 코딩테스트] 코테 입문 배열 "옷가게 할인 받기" 풀기 (0) | 2024.03.02 |