[알고리즘] 2차원 탐색 - 큰 수 출력하기
큰 수 출력하기
N(1<=N<=100)개의 정수를 입력받아, 자신의 바로 앞 수보다 큰 수만 출력하는 프로그램을 작성하세요.(첫 번째 수는 무조건 출력한다)
▣ 입력설명
첫 줄에 자연수 N이 주어지고, 그 다음 줄에 N개의 정수가 입력된다.
▣ 출력설명
자신의 바로 앞 수보다 큰 수만 한 줄로 출력한다.
▣ 입력예제 1
6
7 3 9 5 6 12
▣ 출력예제 1
7 9 6 12
요소를 차례차례 탐색하여 조건에 맞는 요소를 정답 배열에 넣으면 된다.
내 풀이
function solution(arr) {
let answer = [];
answer.push(arr[0]);
for (let i = 1; i < arr.length; i++) {
arr[i] < arr[i + 1] ? answer.push(arr[i + 1]) : null;
}
return answer;
}
강사님 풀이
function solution(arr){
let answer=[];
answer.push(arr[0]);
for(let i=1; i<arr.length; i++){
if(arr[i]>arr[i-1]) answer.push(arr[i]);
}
return answer;
}
다른 풀이
function solution(arr){
let answer = [];
arr = [0, ...arr];
for (let i=1; i < arr.length; i++){
if (arr[i] > arr[i-1]){
answer.push(arr[i])
}
}
return answer.join(' ');
}
push
를 사용하지 않고 스프레드 문법을 사용하였다.
function solution(arr) {
let answer = [];
arr.reduce((acc, cur) => {
if (cur > acc) {
answer.push(cur);
}
return cur;
}, 0);
return answer.join(' ');
}
reduce
메서드를 사용하였다. for문
을 사용하지 않는게 내 목표였는데 이 방법이 떠오르지 않았다. 사실 되게 간단한거였는데... reduce
함수의 인자로 넘겨줄 acc,cur
에서 acc
를 이전 단계의 cur
로 return해주면 바로 이전 index
와 비교하게 된다. 이때 초기값으로는 0을 넘겨준다.
Author And Source
이 문제에 관하여([알고리즘] 2차원 탐색 - 큰 수 출력하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@shinwonse/알고리즘-2차원-탐색-큰-수-출력하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)