1.1 문제 설명
배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면,
arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다.
arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다.
배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요.
1.2 풀이 과정
function solution(arr){
return arr.filter((val,index) => val != arr[index+1]);
//val 값이 val index 다음값과 같지 않은 값들만 반환한다.
}
2.1 문제 설명
2.2 풀이 과정
function solution(lottos, win_nums) {
let arr = [];
let sameNumber = lottos.filter( x => win_nums.includes(x));// 두 배열 비교 같은값 도출
let count = 0;
for (let i = 0; i < lottos.length; i++) {
if (lottos[i] == 0) {
count++ //0의 개수
}
}
if (sameNumber.length + count == 6 ) {
arr.push(1); //같은번호 배열의 길이가 일치하는 번호 갯수 + 0의 갯수 =최고 등수
} else if (sameNumber.length + count == 5 ) {
arr.push(2);
} else if (sameNumber.length + count == 4) {
arr.push(3);
} else if (sameNumber.length + count == 3) {
arr.push(4);
} else if (sameNumber.length + count == 2) {
arr.push(5);
} else {
arr.push(6);
}
if (sameNumber.length == 6) {
arr.push(1); //같은번호 배열의 길이가 일치하는 번호 갯수 = 최저 등수
} else if ( sameNumber.length == 5) {
arr.push(2);
} else if ( sameNumber.length == 4) {
arr.push(3);
} else if (sameNumber.length == 3) {
arr.push(4);
} else if (sameNumber.length == 2) {
arr.push(5);
} else {
arr.push(6);
}
return arr.sort();
}