프로그래머스_Lv0_A로 B 만들기 _파이썬

Today Jeeho Learned·2022년 12월 15일
0

알고리즘

목록 보기
28/38
post-thumbnail

문제 출처

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

내 답안

def solution(before, after):
    answer = 0
    cnt = 0
    for i in before:
        if before.count(str(i)) == after.count(str(i)):
            cnt +=1
    if cnt == len(before):
        answer =1
    answser = 0


    return answer
    

풀이 정리

  • 맨 처음에는 그냥 문장을 역순으로 출력했을 때, 같은 문장인지를 확인하는 팰린드롬인줄 알았다.
  • 그래서 before[::-1] == after로 코드를 작성했는데 오답이 몇개 나오길래 문제를 다시 읽어보았다.
  • 내린 결론은 before의 요소의 개수와 after의 요소의 개수만 같으면 조합 하여 같은 글자를 만들수있겠다고 생각했다.
  • 그래서 before 문자의 개수와 after 문자의 개수가 같은지를 비교해주었고, 값이 같으면 숫자를 하나씩 증가해주었고, 이값이 전체문장의 길이와 같은지를 확인해주었다. 같을 경우 answer을1로 다르면 0을 출력해주었다.

다른풀이

def solution(before, after):
    before=sorted(before)
    after=sorted(after)
    if before==after:
        return 1
    else:
        return 0

문제를 풀고 다른 사람들의 풀이를 보았는데, sort를 활용하여 알파벳 순으로 정렬하고, 같은지를 확인하는 로직이 훨씬 쉽고 간단해 보였다. 순서만 바꿔서 같은 문장이 될수있는 형식이라면 정렬했을때 같은 값이 나와야 하는 것을 잘 생각한 것 같다.

profile
기록해야 (살아)남는다 !

0개의 댓글