[프로그래머스][파이썬] 외계어 사전 - 문자열 (Level 0)

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

◽ 문제 출처

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

◽ 문제

◽ 입력 & 출력

◽ 내 풀이

def solution(spell, dic):
    for d in dic:
        if not set(spell) - set(d):
            return 1
    return 2
  • 알파벳을 모두 사용한 단어가 하나라도 존재하면 되니까, if 문에서 set 연산 결과가 0 이 나오면 (차집합의 결과가 0 이면 전부 있다는 뜻) not 을 통해 if 문을 실행시키며 즉시 1 을 반환한다.

◽ 다른 사람 풀이

def solution(spell, dic):
    answer = 0

    n = len(spell)

    for word in dic:
        if len(word) !=  n:
            continue

        cnt = 0
        word = list(set(word))
        for i in word:
            if i in spell:
                cnt += 1
        if cnt == n:
            return 1

    return 2
  • 역시나 set 자료형을 활용해 풀이했다.
  • 하지만 기본적인 구조가 개수를 전부 세는것과 하나라도 있다면 반환하는 차이가 있다.

◽ 더 나아가기

  • set 자료형에 대해서 더 알아가는 시간인것 같다.
  • 단순하게 중복을 허용하지 않고 순서가 없는 자료형을 넘어서, 집합 연산을 통해 요소의 차이를 구현할 수 있다.



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

profile
성장하고 싶은 개발자

0개의 댓글