백준

백준 6996 애너그램(Java)

Park DJ 2023. 1. 18. 15:01

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

 

6996번: 애너그램

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

www.acmicpc.net


 

해석 및 팁

 


 

이 문제는 A에 속하는 알파벳의 순서를 바꿔서 B를 만들 수 있는지 아닌지를 출력하는 문제입니다. 따라서 주어진 단어를 잘라서 char형 배열에 저장한후 내림차순으로 정렬했을때 같으면 애너그램인 경우이고 다르면 아닌 경우입니다.

 


 

Java 코드

 


import java.util.Scanner;
import java.util.Arrays;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);

    int t = sc.nextInt();


    for(int i = 0; i < t; i++) {
      String a = sc.next();
      String b = sc.next();
      char[] A = a.toCharArray();         //char 배열에 저장
      char[] B = b.toCharArray();
      Arrays.sort(A);                     //내림차순으로 정렬
      Arrays.sort(B);
      if(Arrays.equals(A, B)) System.out.println(a+" & "+b+" are anagrams.");
      else System.out.println(a+" & "+b+" are NOT anagrams.");
    }
    
  }
}