본문 바로가기

[프로그래머스 Lv.0] 중복된 문자 제거

@doyiya242025. 8. 7. 15:46

중복된 문자 제거

 

문제 설명

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

 

제한사항

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

입출력 예 설명

입출력 예 #1

  • "people"에서 중복된 문자 "p"와 "e"을 제거한 "peol"을 return합니다.

입출력 예 #2

  • "We are the world"에서 중복된 문자 "e", " ", "r" 들을 제거한 "We arthwold"을 return합니다.

 

 

내가 작성한 코드

def solution(my_string):
    answer=""
    for i in my_string:
        if i not in answer:
            answer+=i
    return answer

-> 내부에 없다면! "if - not in -" / 있다면 " if - in - " 사용! 

-> 리스트를 이을때는 append를 사용하고, string문자열을 이을때는 +연산자를 사용하자.

-> 블로그참고했음 ㅠㅠ

 

 

 

다른 사람이 작성한 코드

def solution(my_string):
    return ''.join(dict.fromkeys(my_string))

=> dict를 사용하다니.. 이 문제에 dict를 사용할수있을지는 몰랐다.

 

1. dict.fromkeys(my_string)

  • dict.fromkeys(iterable)는 주어진 iterable의 요소들을 key로 가지는 딕셔너리를 만듭니다.
    # 결과: {'b': None, 'a': None, 'n': None}
  • 딕셔너리는 중복 key를 허용하지 않고, key들이 들어오는 순서를 유지합니다 (파이썬 3.7+).

2. ''.join(...)

  • 딕셔너리의 key만 꺼내서 리스트처럼 동작하는 상태이고,
  • join()으로 이 key들을 다시 하나의 문자열로 합칩니다.

 

 

 

 

회고

dict를 사용해서 중복이 허용되지 않도록 하고 key의 집합을 만들어 그 key만 꺼내서 join을 통해 문자열로 합치는... 그...이 두뇌가 가지고싶다...... dict 저도 이후에 이용해보겠습니다.

 

 

 

 

 

참고 블로그

https://coding-factory.tistory.com/960

 

[Python] 파이썬 문자열 찾기, 포함 유무 확인하기(in, not in, find)

Python에서는 in, not in 키워드를 사용하거나 find() 메서드를 사용하여 특정 문자열이 다른 문자열에 포함되어 있는지 확인할 수 있습니다. in, not in 키워드는 문자열이 있는지 여부를 나타내는 bool

coding-factory.tistory.com

https://blog.hwahae.co.kr/all/tech/6662

 

Python3.6 부터는 Dict가 순서를 기억한다. – 화해 블로그 | 기술 블로그

Python3.6 화해 개발팀에서는 닥블(닥치고 블로그)이라는 소모임을 운영하고 있습니다. 최근 닥블 활동으로 화해팀의 백엔드 플랫폼에서 사용 중인 Python 딕셔너리에 대해 새로 알게 된 내용을 정

blog.hwahae.co.kr

 

 

 

목차