본문 바로가기

Algorithm/String

(Python3) - 프로그래머스(코딩테스트 입문) : A로 B 만들기

반응형

https://school.programmers.co.kr/learn/courses/30/lessons/120886

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

hash map을 사용해본 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

1. hash map before_dict를 선언해 줍니다.

 

2. before의 문자를 순회하며 문자, 빈도 수를 각각 key, value로 before_dict에 저장해줍니다.

📔 풀이과정

after의 원소를 순회하며 다음을 진행합니다.

1, before_dict에 해당 문자가 있다면 빈도수를 1빼줍니다. before에서 after의 문자가 1개씩 날아간다고 생각하면 됩니다.

 

2. 만약 빈도수가 음수라면 before와 문자와 after의 문자가 맞지 않으므로 0을 반환합니다.

 

📔 정답 출력 | 반환

순서를 바꿔서 after를 만들 수 있으므로 1을 반환합니다.


📕 Code

📔 Python3

def solution(before, after):
    before_dict = {}
    for b in before:
        before_dict[b] = before_dict.get(b,0) + 1
    for a in after:
        before_dict[a] = before_dict.get(a,0) - 1
        if before_dict.get(a) < 0:
            return 0
    return 1

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.