새소식

⌨️ Algorithms/백준

[Python] 백준 9946번_단어 퍼즐

2023. 3. 27. 20:11

  • -

https://www.acmicpc.net/problem/9946

 

9946번: 단어 퍼즐

케이스마다 번호를 붙여서 예제출력과 같은 형식으로 출력한다. 준하가 알파벳을 제대로 회수했다면 same 을, 잘못 회수했다면 different 를 출력한다.

www.acmicpc.net

 

  • 단어 퍼즐게임이란, 주어진 알파벳들을 섞어서 단어를 만드는 게임
  • 천재 준하는 알파벳을 임의로 조합하여, 사전과 매칭된 단어를 만드는 프로그램을 만들어 단어를 완성시켰음
  • 그러나 완성된 단어를 원장님에게 가져가려는 순간, 지나가던 강민이와 부딫혀서 단어조각을 땅에 떨어뜨림
  • 준하는 어찌어찌 조각을 회수했지만, 순서는 뒤죽박죽이 되었고, 알파벳이 부족하거나 다른 알파벳이 섞였을 수도 있음
  • 준하가 처음에 완성한 단어와 나중에 회수한 알파벳들이 주어질 때, 준하가 알파벳을 제대로 회수했는지 안했는지 판단하기
  • 입력
    • 입력은 케이스마다 두줄로 이루어져있음
    • 첫째 줄은 준하가 처음 완성한 단어이고, 둘째 줄은 떨어뜨린 다음 회수한 알파벳들
    • 각 줄은 알파벳 소문자로 이루어져 있고, 길이는 1000을 넘지 않음
    • 마지막에 END라는 단어가 두줄 주어지는데, 이는 케이스의 끝을 의미
  • 출력
    • 케이스마다 번호를 붙여서 예제출력과 같은 형식으로 출력
    • 준하가 알파벳을 제대로 회수했다면 same 을, 잘못 회수했다면 different 를 출력
  • 시간 제한: 3초
  • 메모리 제한: 256 MB

 

"""
입출력 예시)

testing
intestg
abc
aabbbcccc
abcabcbcc
aabbbcccc
abc
xyz
END
END
        -> Case 1: same
           Case 2: different
           Case 3: same
           Case 4: different
"""

 

 

## 의사코드 ##

# 두 문자열을 정렬 후 같으면 same
# if sorted(first) == sorted(second):
#             print(f'Case {i}: same')

 

 

 

 

i = 0 
while True:
    first = input()
    second = input()
    if first == 'END' and second == 'END':
        break
    else:
        i += 1
        if sorted(first) == sorted(second):
            print(f'Case {i}: same')
        else:
            print(f'Case {i}: different')

 

 

  • 문자열 정렬
    • sorted(문자열)
  • i = 0 을 while문 밖에 작성해야 i += 1 작동

 

 

 

 

 

 

https://www.techiedelight.com/ko/sort-string-python/

 

파이썬 문자열 정렬

이 게시물은 Python에서 문자열을 정렬하는 방법에 대해 설명합니다. 문자열은 Python에서 변경할 수 없기 때문에 단순히 문자열의 문자를 섞어서 정렬된 순서로 변환할 수 없습니다. 그러나 정렬

www.techiedelight.com

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다!