문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/120888
답안1 (for문 이용)
function solution(my_string) {
let str = ''
for (let i = 0; i < my_string.length; i++) {
if (str.includes(my_string[i]) === false) {
str += my_string[i]
}
}
return str
}
- includes메서드로 중복되는 내용을 계속 체킹하면서 중복된 것이 없을 경우 str에 엘리먼트를 push 해주는 형태이다.
- 직관적이지만 아마 O(N^2)이 될 것 같아서 내심 아쉬운 답안이다.
답안2 (Set 이용)
function solution(my_string) {
return [...new Set(my_string)].join('')
}
- set은 집합의 개념이므로 자체가 중복되는 것을 허용하지 않는다.
- 자바스크립트의 set은 이터러블이며, 순서가 보장되므로 문자열을 set 형태로 바꾸고 배열로 만든 뒤
문자열로 합친다면 해결이 된다.
'코테 문제 풀이' 카테고리의 다른 글
[레벨 0] A로 B 만들기 (배열 정렬 후 join으로 문자열화) (0) | 2023.01.10 |
---|---|
[레벨 0] 중복된 문자 제거 (object, Set) (0) | 2023.01.10 |
[레벨 0] 369 게임 (메서드체이닝, 정규표현식) (0) | 2022.12.17 |
[레벨 0] 외계행성의 나이 (문자열 - 배열 - 문자열) (0) | 2022.12.17 |
[레벨 0] 배열 회전시키기 (pop, push, shift, unshift) (1) | 2022.12.17 |