👉 사용 언어 : PYTHON3
✅ Solution
def solution(spell, dic):
answer = 2
spell = sorted(spell)
for i in dic:
if spell == sorted(i):
answer -= 1
return answer
👉 아이디어
- spell에 있는 문자를 모두 한 번씩 사용하여 만들 수 있는 문자열을 찾는 문제
- 따라서, spell 문자열을 정렬시켜놓고 이를 dic 각각의 원소를 정렬한 값과 비교한다.
- 동일한 값이 있으면 1을, 동일한 값이 없으면 2를 반환한다.
- 시간 복잡도 줄이기 위해 spell은 반복문 전에 정렬하고 spell 변수에 재할당하였다.
- 병합 정렬을 기반, 병합 정렬은 일반적으로 퀵 정렬보다 느리지만 최악의 경우에도 시간 복잡도 O(NlogN)을 보장한다.
✅ 다른 사람 풀이 참고
def solution(spell, dic):
for d in dic:
if sorted(d) == sorted(spell):
return 1
return 2
👉 깨달은 것 / 알게된 것
- 같은 방식으로 풀었으나,
- spell 정렬을 반복문 밖에서 했느냐 안에서 했느냐 차이가 있고
- answer 변수 없이 조건문 안에서는 1을 리턴하고 그 밖의 경우에는 2를 리턴하도록 코드를 작성하였다.
'알고리즘풀이 > 프로그래머스' 카테고리의 다른 글
| [1/28] Kakao Internship 기출문제 풀이 (0) | 2024.01.26 |
|---|---|
| 합성수 찾기 (0) | 2024.01.24 |
| 약수의 개수와 덧셈 (0) | 2024.01.20 |
| 바탕화면 정리 (0) | 2024.01.19 |
| 삼각형의 완성조건(2) (0) | 2024.01.18 |