알고리즘 문제풀이
애너그램(백준 6996)
wiojfe
2024. 3. 17. 17:06
https://www.acmicpc.net/problem/6996
6996번: 애너그램
첫째 줄에 테스트 케이스의 개수(<100)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 100을 넘지 않는 단어가 공백으로 구분되어서 주어진다. 단어는 알파벳 소문자로만 이루어
www.acmicpc.net
문자열 순서를 바꿔 동일하게 만들 수 있으면 되니 2개의 문자열을 정렬해서 확인하면 된다.
n = int(input())
for i in range(n):
# 입력 받은 문자열의 원본을 저장
original_a, original_b = map(str, input().split())
# 문자열을 리스트로 변환하여 정렬하기 위해 복사
a = list(original_a)
b = list(original_b)
# 정렬
a.sort()
b.sort()
if len(a) != len(b):
print(f"{original_a} & {original_b} are NOT anagrams.")
else:
issame = 1 # 아나그램인지 확인하는 플래그 변수
for j in range(len(a)):
if a[j] != b[j]:
issame = 0
print(f"{original_a} & {original_b} are NOT anagrams.")
break
# 모든 조건을 통과했을 때만 아나그램으로 판별
if issame:
print(f"{original_a} & {original_b} are anagrams.")