본문 바로가기
코딩테스트/Beakjoon

백준 6996번 : 애너그램 Python]

by 나스나키 2024. 1. 20.
728x90

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

 

6996번: 애너그램

첫째 줄에 테스트 케이스의 개수(<100)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 100을 넘지 않는 단어가 공백으로 구분되어서 주어진다. 단어는 알파벳 소문자로만 이루어

www.acmicpc.net

 

 

문제 

두 단어 A와 B가 주어졌을 때, A에 속하는 알파벳의 순서를 바꾸어서 B를 만들 수 있다면, A와 B를 애너그램이라고 한다.

두 단어가 애너그램인지 아닌지 구하는 프로그램을 작성하시오.

 
 

입력

첫째 줄에 테스트 케이스의 개수(<100)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 100을 넘지 않는 단어가 공백으로 구분되어서 주어진다. 단어는 알파벳 소문자로만 이루어져 있다.

 
 
 
 

출력

정확한 출력 형식은 제출에서 언어를 Java로 설정하면 확인할 수 있다.

 

 

예시

 

코드

import sys

num = int(sys.stdin.readline())
for i in range(num):
    S1, S2 = map(str, sys.stdin.readline().split())
    s1 = sorted(list(S1))
    s2 = sorted(list(S2))
    if s1 == s2:
        print("%s & %s are anagrams." % (S1, S2))
    else:
        print("%s & %s are NOT anagrams." % (S1, S2))

 

 

코드 해석

  • 확일한 캐이스의 수를 구한다.
  • for문으로 수를 반복한다.
    • 두 단어를 받는다. 
    • 두 단으로 정렬한다.
    • 정렬한 두 단어가 같아면 are anagrams를 아니다면 are NOT anagrams를 출력한다.

 

728x90