코딩테스트/Programmers

A로 B 만들기 (Python)

동띵 2023. 7. 21. 11:30

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