공부/코딩테스트

Q. 중복된 문자 제거

뀨뿌뀨뿌 2024. 4. 1. 11:50

문자열 my_string이 매개변수로 주어집니다. my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return하도록 solution 함수를 완성해주세요.

🚫제한 사항
1 ≤ my_string ≤ 110
my_string은 대문자, 소문자, 공백으로 구성되어 있습니다.
대문자와 소문자를 구분합니다.
공백(" ")도 하나의 문자로 구분합니다.
중복된 문자 중 가장 앞에 있는 문자를 남깁니다.

❗입출력 예

my_string result
"people" "peol"
"We are the world" "We arthwold"

😀 내가 푼 답

const solution = (my_string) => {
    return [...new Set(my_string)].join("")
}
  • Set
    • 중복되지 않는 값들을 저장할때 사용함
    • 배열과 유사하게 여러 값을 순차적으로 저장할 수 있지만, 'Set'내의 각 값은 유일해야 하며, 같은 값을 두 번 추가하려고 하면 두 번째 추가는 무시됨
    • 주요 특징
      • 동일한 값을 여러 번 추가하려고 해도 'Set'은 그 값을 한번만 저장함
      • 'Set'에 추가된 값들은 삽입된 순서를 유지함
        -> 이터레이션 시 값들은 추가된 순서되로 처리됨
        *이터레이션(iteration)
        - 반복적인 작업이나 프로세스를 의미함
        - 프로그래밍에서는 일밙거으로 데이터 구조(ex. 배열, 리스트, 집합등)를 순회하거나, 특정 조건을 만족할 때까지 반복적으로 작업을 수행하는 것을 가리킴
        - 이터레이션을 수행할 때는 보통 반복문이나 반복자(iterator, ex. Set, Map같은 경우 .next() 메스드를 포함하는 반복자를 제공함)와 같은 도구를 사용함
      • 'Set'은 모든 타입의 값을 저장할 수 있으며, 객체와 기본형 값 모두 유니크하게 저장할 수 있음
    • 주요 메서드 및 프로퍼티
      • .add()
        • 'Set'에 값을 추가하지만 'Set'내에 같은 값이 있다면 효과가 없음
      • .delete()
        • 주어진 값을 'Set'에서 제거하고 성공적으로 제거되면 true를, 그렇지 않으면 false를 반환
      • .has()
        • 'Set'이 주어진 값을 포함하고 있는지 여부를 반환하고 값이 있으면 true, 없으면 fasle
      • .clear()
        • 'Set'에서 모든 값을 제거함
      • .size()
        • 'Set'에 포함된 값의 개수를 반환함

😊 문제풀이 답안 OR 다른사람들 답안

function solution(my_string) {
    const freq = {};
    let result = "";

    for (const ch of my_string) {
        if (freq[ch] !== undefined) continue;

        freq[ch] = true;
        result += ch;
    }

    return result;
}

'공부 > 코딩테스트' 카테고리의 다른 글

Q. 배열의 길이를 2의 거듭제곱으로 만들기  (0) 2024.10.14
Q. 이차원으로 만들기  (0) 2024.04.01
Q. 최대값 만들기(2)  (0) 2024.02.26
Q. 주사위의 개수  (0) 2024.02.26
Q. 가장 큰 수 찾기  (1) 2024.02.26