소 객 망 [프로 그래 밍 문제] 문자열 분류 (자바 구현)

소 와 소 는 N 개의 문자열 이 있 습 니 다. 그 는 이 문자열 들 을 분류 하고 싶 습 니 다. 그 는 두 문자열 A 와 B 가 같은 종류 에 속 하기 때문에 다음 과 같은 조건 을 만족 시 켜 야 한다 고 생각 합 니 다. A 에서 임의의 위치 에 있 는 두 문 자 를 교환 하면 최종 적 으로 B 를 얻 을 수 있 고 교환 횟수 는 제한 되 지 않 습 니 다.예 를 들 어 abc 와 bca 는 같은 문자열 입 니 다.현재 소 는 이 N 문자열 이 몇 가지 로 나 눌 수 있 는 지 알 고 싶 어 합 니 다. 
입력 설명:
         N(1 <= N <= 50),     N    ,          50。

출력 설명:

입력 예:
4
abcd
abdc
dabc
bacd

출력 예:
1
package string.of.classification;

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

/*
 * 1.          ,       
 * 2. HashSet        
 * 2.  HashSet   !
 */
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		
		HashSet set = new HashSet();
		char[] arr;
		for (int i = 0; i < N; i++) {
			arr = sc.next().toCharArray();
			Arrays.sort(arr);
			set.add(new String(arr));
		}
		System.out.println(set.size());
	}
}

좋은 웹페이지 즐겨찾기