[프로그래머스][파이썬] 한 번만 등장한 문자 - 배열 (Level 0)

뻥튀기아이스크림·2025년 3월 19일
1
post-thumbnail

◽ 문제 출처

https://school.programmers.co.kr/learn/courses/30/lessons/120896

◽ 문제

◽ 입력 & 출력

◽ 내 풀이

def solution(s):
    answer = ''
    count_lst = [0] * 26
    
    for str in s:
        count_lst[ord(str) - 97] += 1
    
    for idx in range(len(count_lst)):
        if count_lst[idx] == 1:
            answer += chr(idx + 97)
    
    return answer
  • 알파벳의 개수인 26 만큼의 리스트를 초기화하고, 소문자로만 이루어져있으니 a0 번 인덱스로 저장되려면 a 의 아스키 코드값인 97을 빼준 인덱스에 더한다.
  • 알파벳마다 등장한 횟수가 담긴 count_lst 리스트를 순회하며 등장 횟수가 1 인 문자가 있다면 해당 알파벳을 구해 문자열에 넣는다.
  • 알파벳 순서대로 리스트가 저장되어 있으니 정렬을 이미 되어 있다.

◽ 다른 사람 풀이

def solution(s):
    answer = "".join(sorted([ch for ch in s if s.count(ch) == 1]))
    return answer
  • 뭔가 힘이 빠지는데... 풀이를 뜯어보자면 주어진 문자열에서 개수가 1ch 를 찾아 문자열에 넣는 코드이다.
  • 리스트 정렬을 보장할 수 없으니 sorted() 로 사전 순으로 정렬해주었다.

◽ 더 나아가기

  • 오히려 내 코드가 한줄 코딩이 어색한 분들께 도움이 되었으면 하는 바램이다.
  • 여러가지 방식으로 접근할 수 있음을 기뻐하자.



피드백은 언제나 환영입니다 :)

profile
성장하고 싶은 개발자

0개의 댓글