내 코드
def solution(spell, dic):
for i in dic:
if set(spell) == set(i):
return 1
return 2
코드 설명
- spell에 담긴 알파벳을 set 자료형으로 변환해 중복 없이 저장합니다.
- dic에 있는 단어들을 하나씩 검사하며, 각 단어를 set으로 변환한 후 spell과 비교합니다.
- 조건을 만족하면 1을 반환하고, 모든 단어를 확인해도 조건을 만족하지 않으면 2를 반환합니다.
특징
- 집합 비교: set을 사용하여 두 단어에 포함된 알파벳이 동일한지만 검사합니다.
- 중복 무시: set을 사용하기 때문에 문자의 순서와 중복 여부를 신경 쓰지 않습니다.
- 효율적 탐색: for 문으로 dic의 각 단어를 확인하는 구조입니다.
다른 코드
def solution(spell, dic):
for d in dic:
if sorted(d) == sorted(spell):
return 1
return 2
코드 설명
- spell과 dic의 각 단어를 sorted() 함수를 통해 정렬합니다.
- 정렬된 두 단어를 비교해 동일하면 1을 반환하고, 끝까지 없으면 2를 반환합니다.
특징
- 정렬 비교: sorted()를 사용해 각 단어의 알파벳 순서를 정렬한 후 비교합니다.
- 중복 허용: 문자가 중복되어도 정확히 같은 구성인지 확인할 수 있습니다.
- 문자 순서 무관: 정렬을 통해 순서를 무시하고 동일한 알파벳이 있는지 판단합니다.
두 코드 비교
- 집합(set) 방식 (내 코드)
- 중복 문자를 무시하고 알파벳의 종류만 검사합니다.
- 예를 들어, spell = ['a', 'b']이고 dic = ['aabb']일 때도 1을 반환합니다.
- 정렬(sorted) 방식 (다른 코드)
- 문자의 순서와 개수까지 정확히 일치해야 합니다.
- spell = ['a', 'b']와 dic = ['aabb']라면 2를 반환합니다.
결론
두 코드 모두 알파벳의 순서는 고려하지 않지만,
- 집합 방식은 문자의 종류만 확인하며 중복을 무시합니다.
- 정렬 방식은 문자의 종류와 개수까지 정확히 비교합니다.
문제의 조건에 따라 두 코드 중 더 적합한 방식을 선택하면 됩니다.
- 중복을 고려하지 않는다면: 집합 방식 (내 코드)
- 중복을 고려해야 한다면: 정렬 방식 (다른 코드)
'프로그래머스' 카테고리의 다른 글
프로그래머스 | Python | 직사각형 넓이 구하기 (1) | 2024.12.20 |
---|---|
프로그래머스 | Python | OX퀴즈 (0) | 2024.12.19 |
프로그래머스 | Python | 암호 해독 (0) | 2024.12.17 |
프로그래머스 | Python | 구슬을 나누는 경우의 수 (0) | 2024.12.16 |
프로그래머스 | Python | 삼각형의 완성조건 (2) (0) | 2024.12.16 |