작성
·
182
0
앞선 강의를 들으니 max를 이용해서 문제가 풀렸는데,
2중 for문을 이용한 경우 결과가 안나와요...
조건은 만족하는데 i일때 j보다 큰 모든 경우에 푸쉬 되거나 카운팅이 되는데, 한번만 호출 되게 하는 방법이 궁금합니다.
function solution(arr) {
let answer = [];
answer.push(arr[0]);
for (let i = 1; i < arr.length; i++) {
for (let j = 0; j < i; j++) {
if (arr[i] > arr[j]) {
answer.push(arr[i]);
}
}
}
return answer;
}
let arr = [130, 135, 148, 140, 145, 150, 150, 153];
console.log(solution(arr));
답변 1
2
안녕하세요^^
이런건 스스로 계속 도전해보는게 좋습니다. 문제를 푸는게 중요한 게 아니라 계속 고민해보고 도전해보는게 중요합니다. 그래야 실력이 올라갑니다. 못 풀어도 별 상관없습니다. 다른 문제 풀다가 한 두달 후에 다시 와서 해보면 풀릴때가 많습니다. 아래는 위에 코드를 정답이 나오게 수정해보았습니다.
function solution(arr) {
let answer = [];
answer.push(arr[0]);
for (let i = 1; i < arr.length; i++) {
let flag = true;
for (let j = 0; j < i; j++) {
if (arr[i] <= arr[j]) {
flag = false;
break;
}
}
if(flag == true) answer.push(arr[i]);
}
return answer;
}
let arr = [130, 135, 148, 140, 145, 150, 150, 153];
console.log(solution(arr));