중복된 문자 제거
문제 설명
문자열 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
'CodingTest > 프로그래머스 (미운영)' 카테고리의 다른 글
| [프로그래머스 Lv.0] 암호 해독 (0) | 2025.08.08 |
|---|---|
| [프로그래머스 Lv.0] 369게임 (0) | 2025.08.07 |
| [프로그래머스 Lv.0] 컨트롤 제트 (0) | 2025.08.07 |
| [프로그래머스 Lv.0] 소인수분해 (0) | 2025.08.01 |
| [프로그래머스 Lv.0] 모음 제거 (0) | 2025.08.01 |