코딩테스트연습(파이썬)

A로 B 만들기 / 프로그래머스, 파이썬 코딩테스트 연습코딩테스트 입문

LearnerToRunner 2022. 11. 18. 11:56

문제

문자열 before와 after가 매개변수로 주어질 때, before의 순서를 바꾸어 after를 만들 수 있으면 1을, 만들 수 없으면 0을 return 하도록 solution 함수를 완성해보세요.

 

 

제출답안

def solution(before, after):
    def zip_letter_and_count(list):
        ls = [letter for letter in list]
        set_ls = set(ls)
        tp = zip(set(ls), [ls.count(letter) for letter in set_ls])
        tp = sorted(tp, key=lambda x: x[0] )
        return tp
        
    b = zip_letter_and_count(before)
    a = zip_letter_and_count(after)
    print(sorted(before))
    
    answer = 1 if a==b else 0
    return answer

 

 

제출 후 개선답안

Sorted 에 string을 받고 리스트로 반환할 수 있음을 알게됨.
따라서, 아래와 같이 코드를 개선하였음


def solution(before, after):
    before_sorted = sorted(before)
    after_sorted = sorted(after)
    answer = 1 if before_sorted == after_sorted else 0

    return answer

 

 

 

 

문제 바로가기

 

728x90