# 내 풀이
def solution(before, after):
alist = list(after)
for a in before:
if a in alist:
alist.remove(a)
return 1 if alist == [] else 0
- list(after) : list로 형 변환 → 문자열의 각 문자가 list의 각 요소가 된다.
- if a in alsit : alist 안에 a가 있다면 True, 없다면 False
- alist.remove(a) : alist에서 a의 값을 삭제시켜준다.
- return 1 if alist == [] else 0 : 삼항 연산자로 True 1, False 0이 반환
# 헷갈렸던 부분
- str에 사용할 수 있는 메서드와 list에 사용할 수 있는 메서드가 정확히 정리되지 않아서 서로 섞어서 사용하며, 오류가 발생했던 상황이 많았다. → 각 메서드를 다시 한번 공부하여 개념을 늘림.
# GPT 풀이
1. sorted() 메서드를 활용한 경우
def solution(before, after):
return 1 if sorted(before) == sorted(after) else 0
- sorted() : 각 문자열을 알파벳 순서대로 정렬하였다.
2. collections.Counter를 이용한 경우
from collections import Counter
def solution(before, after):
return 1 if Counter(before) == Counter(after) else 0
- Counter() : 문자열이나 리스트 등의 요소 개수를 세어 딕셔너리에 저장한다.
# 삼항 연산자
- Python에서 한 줄로 if-else 조건문을 표현하는 방법이다.
값1 if 조건 else 값2
- 조건이 True이면 값1을 반환
- 조건이 False이면 값2를 반환
# collections.Counter(iterable or mapping)
- Python의 collections 모듈에 포함된 문자열이나 리스트 등의 요소 개수를 세어주는 딕셔너리 기반 자료구조이다.
from collections import Counter
word = "banana"
counter = Counter(word)
print(counter) // 결과 : Counter({'a': 3, 'n': 2, 'b': 1})