https://school.programmers.co.kr/learn/courses/30/lessons/120886
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr

def solution(before, after):
char_dict = dict.fromkeys(before, 0)
for char in before:
if char in char_dict:
char_dict[char] += 1
for char in after:
if char in char_dict:
char_dict[char] -= 1
return 1 if all(e == 0 for e in list(char_dict.values())) else 0
문자열 before의 요소와 개수를 세기 위해 해시 테이블인 dict를 사용했다.
fromkeys() 메서드를 사용해 딕셔너리 생성 후
for in 문을 사용해 before을 돌며 해당 딕셔너리에 문자가 있으면 value 값을 1 더해주었다.
딕셔너리와 문자열 after의 요소와 비교하기 위해
for in 문으로 after를 돌며 딕셔너리에 문자가 있으면 value 값에 1을 빼주었다.
그리고 딕셔너리의 values 함수를 사용한 후 list로 형변환 시켜 value 값들만 추출한 후,
all 메서드를 사용해 해당 리스트의 요소가 모두 0이면 1을, 아니라면 0을 return 해주었다.
'코딩테스트 > Programmers' 카테고리의 다른 글
| N으로 표현 (Python) (0) | 2023.09.24 |
|---|---|
| 완주하지 못한 선수 (Python) (0) | 2023.07.25 |
| 숨어있는 숫자의 덧셈 (2) (Python) (0) | 2023.07.17 |
| 튜플 (Python) (0) | 2023.06.01 |
| 진료순서 정하기 (JS) (2) | 2022.12.06 |