oohyoo 님의 블로그

[Python] 프로그래머스 - A로 B 만들기 본문

코딩테스트

[Python] 프로그래머스 - A로 B 만들기

oohyoo 2025. 1. 17. 23:19

[문제]

 

[잘못된 풀이]

def solution(before, after):
    answer = 0
    b = list(before)
    a = list(after)
    b_sorted = b.sort()
    a_sorted = a.sort()
    if a_sorted == b_sorted:
        answer = 1
    return answer

 

sort 함수를 사용하였다. sort 함수는 매개변수로 주어진 리스트를 직접 수정하고, None 값을 리턴한다. 따라서 제대로 된 값이 나오지 않았던 것이다.

 

추가적으로 이 문제는 before 문자열의 순서를 뒤집어서 after 문자열을 만드는 것이 아니다. before 문자열을 이리저리 조합하여 after 문자열을 만들 수 있다면 통과

 

[풀이 - sort 이용]

def solution(before, after):
    answer = 0
    b = list(before)
    a = list(after)
    b.sort()
    a.sort()
    if a == b:
        answer = 1
    return answer

 

sort는 string 자료형에 사용될 수 없기에 리스트로 변환한 후 사용해주어야한다. sort 함수를 실행하면 리스트 자체가 수정되므로 정렬한 결과를 새로운 변수에 담을 필요가 없다.

 

[풀이 - sorted 이용]

def solution(before, after):
    answer = 0
    b_sorted = sorted(before)
    a_sorted = sorted(after)
    if a_sorted == b_sorted:
        answer = 1
    return answer

 

sorted는 string 자료형에서도 사용 가능하다. 다만 매개변수로 받은 값을 정렬한 뒤 그 값을 반환하므로 정렬된 값을 담을 새로운 변수를 만들어줘야 한다.

반응형