프라이D
프라이Develog(❁´◡`❁)
프라이D
전체 방문자
오늘
어제
  • ALL (378)
    • TDD, Cleancode with JavaScr.. (5)
    • 프로젝트 (32)
      • work (3)
      • 직접 만드는 기술 블로그 (2)
      • 데일리 옥션 (19)
      • 모락모락 (8)
    • Computer Science (1)
    • Algorithm & 자료구조 (94)
      • 알고리즘 w.JavaScript (53)
      • 자료구조 (5)
      • (인프런) 자바스크립트 알고리즘 문제풀이 (34)
    • JavaScript (45)
      • JavaScript (41)
      • 모던 자바스크립트 Deep Dive (4)
    • WEB (13)
    • 회고 (12)
    • TIL (109)
    • WIL (7)
    • Stacks (20)
      • React.js (6)
      • Next.js (1)
      • Redux (3)
      • Node.js (2)
      • GIT (2)
      • SAP (1)
    • 15일 메이킹 프로젝트 (15)
    • 이전 기록 (14)
    • ETC. (5)
    • ---------------2021 (6)
      • 내일배움단-웹개발 5주 (2)
      • 정보처리기사 (4)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • 코딩프로젝트
  • JavaScript
  • nomadcoder
  • 국비지원
  • 내일배움단
  • Til
  • 비트마스크
  • 자바스크립트알고리즘
  • 모던자바스크립트딥다이브
  • 스파르타코딩클럽
  • 투포인터알고리즘
  • 코드스테이츠
  • MySQL
  • 자바스크립트
  • 알고리즘
  • vanilaJS
  • nomadcoders
  • 2023 인프콘 후기
  • 자바스크립트비트마스크
  • 내일배움카드

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
프라이D

프라이Develog(❁´◡`❁)

Algorithm & 자료구조/(인프런) 자바스크립트 알고리즘 문제풀이

[알고리즘] 중복 문자 제거 - indexOf, Set

2022. 1. 27. 13:49

문제

입력된 문자열의 중복을 제거하여 리턴하세요. 제거된 문자열의 순서는 원래 순서를 유지합니다.

풀이 1 (indexOf 사용)

function solution(s){  
    let answer = '';
    for(let i = 0; i < s.length; i++) {
        if(s.indexOf(s[i])===i) answer += s[i];
    }
    return answer;
}

solution("ksekkset"); //kset;
  • s.indexOf('a') : s문자열에서 'a'의 위치를 반환한다. 없다면 -1을 반환한다.
  • s.indexOf('a',1) : s문자열에서 'a'를 1번째 인덱스 부터 찾는다. (그 이전의 인덱스는 무시한다.)
  • if(s.indexOf(s[i])===i) : indexOf는 찾고있는 문자의 첫번째 위치를 반환한다. i가 누적될때마다 찍히는 indexOf의 값은, s[i]가 중복값이면 i의 값과 다르다. 따라서 i와 같은 값을 answer에 누적시킨다.

i,s.indexOf(s[i]),s[i]

풀이 2 (Set 사용)

function solution(s){  
    let set = [...new Set(s)];
    let answer = set.join('');

    return answer;
}

solution("ksekkset"); //kset;
  • Set : 자료형에 관계 없이 포함된 값이 set 콜렉션 내에서 "유일" 하다. (= 중복이 없다.) 문자열 s를 set 객체로 만들어 중복을 제거했다.
  • let set = [...new Set(s)]; : set 객체를 배열로 얻기 위해 전개 연산자(...)를 사용했다. 전개 연산자는 반복 가능한 객체를 하나씩 펼쳐서 리턴한다.
  • set.join(''); : 배열 요소를 공백없이 붙이기 위해서 join을 사용했다.

 

참고자료

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Set

https://hianna.tistory.com/421

 

틀린내용 지적 및 개선사항 환영합니다!!!

 

저작자표시 (새창열림)

'Algorithm & 자료구조 > (인프런) 자바스크립트 알고리즘 문제풀이' 카테고리의 다른 글

[알고리즘] 배열 등수 구하기 (Array.from)  (0) 2022.01.29
[알고리즘]중복 단어 제거 - 배열의 중복 제거 (filter, indexOf)  (0) 2022.01.27
[알고리즘]대문자로 통일  (0) 2022.01.25
[알고리즘]문자 찾기 - 문자열에 특정 문자가 몇 개 있는지?(split)  (0) 2022.01.25
[알고리즘] A를 #으로 - 특정 문자열 치환 (replaceAll)  (0) 2022.01.25
    'Algorithm & 자료구조/(인프런) 자바스크립트 알고리즘 문제풀이' 카테고리의 다른 글
    • [알고리즘] 배열 등수 구하기 (Array.from)
    • [알고리즘]중복 단어 제거 - 배열의 중복 제거 (filter, indexOf)
    • [알고리즘]대문자로 통일
    • [알고리즘]문자 찾기 - 문자열에 특정 문자가 몇 개 있는지?(split)
    프라이D
    프라이D
    틀린내용 정정 및 개선사항은 언제든지 댓글 달아주세요 :D

    티스토리툴바