고양이와 코딩
[프로그래머스] 외계어 사전.py 본문
728x90
문제
def solution(spell, dic):
answer = "".join(spell)
for word in dic:
if answer in word:
return 1
else:
return 2
❌ 일단 생각나는대로 후루룩 짠 코드.
오답!! (당연함) 3개의 테스트 케이스 중 두 개만 통과했다.
문제는 더 이상 머리가 굴러가지 않았고.. 이중 for문은 정말로 이제는 그만 써야할 것 같았기에..
파이썬 문자열 문자 중복 어쩌구 검색을 통해서 set함수를 써야겠다!! 까지 도달했다 ㅎㅎ
def solution(spell, dic):
set_spell = set(spell)
for word in dic:
if set_spell.issubset(set(word)):
return 1
return 2
* set 함수: 중복을 허용하지 않는 원소들로 이루어진 컬렉션을 생성하는 역할. 중복된 원소를 제거하여 고유한 원소들만 남긴다.
* issubset 함수: 집합(set)간의 관계를 확인하는 메서드 중 하나로, 첫 번째 집합이 두 번째 집합의 부분집합인지를 판단한다.
그래서 spell을 먼저 중복을 제거한 상태로 만들어 주고 dic을 돌면서 set_spell이 set(word)의 부분 집합인지를 확인한다.
맞다면 1 , 아니면 2!
파이썬의 유용한 함수들을 잘 기억해 두어야겠다.
'python' 카테고리의 다른 글
[프로그래머스] 10월 9일 ~ (0) | 2023.10.09 |
---|---|
[프로그래머스] 저주의 숫자 3.py (0) | 2023.08.12 |
[프로그래머스] 정수 부분.py (0) | 2023.06.24 |
[프로그래머스] 직사각형의 넓이 구하기 (0) | 2023.05.22 |
[프로그래머스] 문자열 계산하기 (0) | 2023.04.29 |