728x90
문제 및 제한사항
문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다.
**제한사항**
0 < s의 길이 < 1,000
s는 소문자로만 이루어져 있습니다.
풀이 방법
이 문제는 indexOf, lastIndexOf라는 매소드를 알고 있어서 쉽게 풀 수 있었다.
해당 메소드를 어떻게 사용하냐면 for문을 돌려서 문자열의 특정 문자가 처음 나온 인덱스와 마지막에 발견된 인덱스가 같은지 보는 것이다.
만약 중복된 문자가 있다면 특정 문자가 처음 나온 인덱스와 마지막에 발견된 인덱스가 다를 것이기 때문에,
같은 경우에만 빈 배열에 넣어주고, 사전 순으로 정렬해야 하기 때문에 sort를 건 후 문자열로 리턴하기 위해 join을 써주었다.
만약 이 매소드를 몰랐다면 어떻게 풀어야 했을까 아직 고민이 되긴 한다.
코드
function solution(s) {
let answer = [];
for (let i = 0; i < s.length; i++) {
if (s.indexOf(s[i]) === s.lastIndexOf(s[i])) {
answer.push(s[i])
}
} return answer.sort().join('')
}
728x90
'⚙️ 코딩테스트' 카테고리의 다른 글
[JavaScript] 프로그래머스 코딩테스트 레벨 1 : x만큼 간격이 있는 n개의 숫자 (0) | 2023.04.06 |
---|---|
[JavaScript] 프로그래머스 코딩테스트 레벨 1 : 자릿수 더하기 (0) | 2023.04.06 |
[JavaScript] 프로그래머스 코딩테스트 입문 : 숨어있는 숫자의 덧셈 (2) (0) | 2023.04.06 |
[JavaScript] 프로그래머스 코딩테스트 입문 : 진료순서 정하기 (0) | 2023.04.06 |
[JavaScript] 프로그래머스 코딩테스트 입문 : 가까운 수 (0) | 2023.03.28 |