문제설명
배열 arr와 정수 n이 주어집니다. 배열 arr의 각 원소는 문자열로 이루어져 있습니다.
이때, 배열 arr에서 중복되는 단어는 하나만 남기고 전부 제거하려고 합니다.
단, 제거된 후 남은 단어들을 반환 할 때는 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다.
제한사항
- strings는 길이 1 이상, 50 이상인 배열입니다.
- strings의 원소는 소문자 알파벳으로 이루어져 있습니다.
- strings의 원소는 1 이상, 100 이하인 문자열입니다.
- 모든 strings의 원소의 길이는 n보다 큽니다.
- 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치 합니다.
입출력 예
지정 입력값
문제풀이
function solution(arr, n){
// 중복되지 않은 단어를 넣을 배열 new_arr 생성
let new_arr = []
// arr의 요소가 new_arr에 있는 지 없는 지 검사
for(let i = 0; i<arr.length; i++){
let check = new_arr.includes(arr[i])
// 없으면 push, 있으면 아무것도 하지 않는다.
if(check == false){
new_arr.push(arr[i]) }
}
// return 1은 배열에 앞에 배치
// return -1은 배열에 뒤에 배치
// return 0은 배열에서 이동 없음
new_arr = new_arr.sort((a,b)=>{
if(a[n]>b[n]){ return 1;
}else if(a[n]<b[n]){ return -1;
}else if(a[n]===b[n]){
if(a > b){ return 1
}else{ return -1 }
}else{ return 0 }
})
return new_arr
}
console.log(solution(['brush', 'sun', 'brush', 'bed', 'car'], 1))
1) 중복되지 않은 단어를 넣을 배열 new_arr 생성
2) arr의 요소가 new_arr에 있는 지 없는 지 검사
3) 없으면 new_arr에 push 한다
4) sort() 함수를 사용해서
- return 1은 배열에 앞에 배치
- return -1은 배열에 뒤에 배치
- return 0은 배열에서 이동 없음
'항해 중 > 2주차 알고리즘(프로그래머스)' 카테고리의 다른 글
알고리즘 기초 주차 - 2번 문제 풀이방법 (0) | 2021.11.13 |
---|---|
알고리즘 기초 주차 - 1번 문제 풀이 방법 (0) | 2021.11.13 |
5일차 → 신규 아이디 추천(정규표현식, replace(), slice(), charAt(), repeat()) (0) | 2021.11.12 |
5일차 → 소수 만들기(소수 판별식) (0) | 2021.11.12 |
4일차 → 문자열 내 마음대로 정렬하기(return 1/-1/0, localCompare()) (0) | 2021.11.11 |
댓글