def solution(s):
    answer = ''
    
    for i in s:
        if s.count(i) ==1:
            answer +=i
        
    return ''.join(sorted(answer))

 

🤔 문제 풀이

  • for i in s:
            if s.count(i) ==1:
                answer +=i
    • for문을 통해서 s의 문자열에서 한 번만 등장한 문자의 수를 셀 거예요
    • 만약 s에서 i의 문자가 1과 같다면 answer에 i 값을 추가해줄게요
  • return ''.join(sorted(answer))
    • 그리고 추가된 i들을 정렬해준 뒤, join 함수를 써서 ''에 넣어주고 retrun 해주면 문제 해결!

실패 흔적들 

1트

#1트
def solution(s):
    answer = ''
    s = set(s)
    
    for i in s:
        answer = ''.join(dict.fromkeys(s))
        
    return sorted(answer)

 

🤔 코드 풀이

  • 매개변수 s가 문자열이길래 set() 함수를 써서 하나하나 다 뜯어냈어요
  • 그러고 for문으로 s를 돌려서 중복값을 join 함수로 없애려 했어요
  • 그리고 answer을 정렬한 값을 리턴하려 했지만,
    • 문자열로 출력이 되지 않았고, l도 중복이었는데 삭제되지 않았어요 🤔 

 

2트

#2트
def solution(s):
    answer = ''
    
    for i in s:
        if s.count(i) ==1:
            answer +=i
        
    return ''.join(sorted(answer))

 

🤔 코드 풀이

  • 힌트를 얻고자 튜터님께 방문해서 설명을 들었어요
    • set() 함수 자체가 중복을 허용하지 않고, 순서도 보장할 수 없는 특징이더라구요
    • 그래서 싹 다 지우고 다시 처음부터 했어요
  • 문제를 다시 계속 읽어보았는데, "한 번만"이라는 단어에 꽂혔거든요 그래서 "count를 해볼까"를 생각해서 코드 짜보았어요
    • 이 접근 방식이 맞았어요! 정답이었답니당~~
  •     return ''.join(sorted(answer))
    • 원하는 결괏값 형태로 만들려면 ''.join 함수를 써야 하구요.
    • 사전 순으로 정렬해서 출력해야 하기 때문에 answer를 sorted한 값을 ''에 join 해주었어요
    • 문제 해결!

+ Recent posts