아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

비슷한 번호판

면접 대비

시간 제한1초메모리 제한512 MB

요약
길이가 같은 번호판 n개를 대소문자 무시 문자 조합과 대문자 개수로 묶고, 각 묶음 안의 쌍 개수를 센다.
난이도

보통10점 중 4점

유형
해시맵, 문자열, 조합론, 정렬
정답자
아직 제출이 없습니다

문제

Albert가 다니는 회사의 주차장에 지금 자동차 n대가 일렬로 (좌에서 우로) 주차되어 있다. 편의상 차는 좌측부터 순서대로 1번에서 n번까지 번호로 나타내자. i번 차의 번호판에 적힌 문자열을 x[i]라 하자. n개의 문자열은 서로 다르며, 영어 대소문자 (a-z와 A-Z)로만 구성된 길이 k인 문자열이다. 즉, 모든 번호판의 길이는 같다.

임의의 두 자동차 i, j에 대하여 번호판 x[i]와 x[j]가 아래 조건을 모두 만족하면 두 자동차는 비슷한 번호판을 가졌다고 한다:

  • 26가지의 각 알파벳에 대하여, 대소문자를 무시했을 때 해당 알파벳이 x[i]에 적힌 횟수와 x[j]에 적힌 횟수가 같다 (이 조건은 각 알파벳에 대해 만족해야 한다).
  • x[i]에 적힌 대문자의 개수와 x[j]에 적힌 대문자의 개수가 같다.

예를 들어, n = 4, k = 3이고 x = ["AtY", "YtA", "aTy", "Ayt"]라 하자.

  • 1번차와 2번차의 번호판은 비슷하다: 두 번호판 모두 A/a 1개, T/t 1개, Y/y 1개씩을 포함하고 대문자는 3글자 중 2글자이다.
  • 3번차와 4번차의 번호판은 비슷하다: 두 번호판 모두 A/a 1개, T/t 1개, Y/y 1개씩을 포함하고 대문자는 3글자 중 1글자이다.
  • 1번차와 3번차의 번호판은 비슷하지 않다: 1번차는 대문자 2개, 3번차는 대문자 1개를 포함한다 (단, 첫 번째 조건은 만족한다).

입력으로 n, k 그리고 x[1], ..., x[n]이 주어졌을 때, 비슷한 번호판 쌍의 수를 구해서 Albert에게 알려주자.

입력

첫 줄에 테스트 케이스의 수 T가 주어진다.

각 테스트 케이스의 첫 줄에는 n과 k가 공백으로 구분되어 주어진다.

두 번째 줄에는 길이가 k인 문자열 n개가 공백으로 구분되어 주어진다.

출력

각 테스트 케이스의 정답을 각 줄에 출력한다.

제한

  • 1 ≤ T ≤ 20
  • 1 ≤ n ≤ 10,000
  • 1 ≤ k ≤ 20

예제1

  1. 예제 1

    입력
    5
    4 3
    AtY YtA aTy Ayt
    4 4
    AAaa AaAa aaAA AaaA
    5 4
    AAAA aaaa AAaa AAAa Aaaa
    10 1
    A a B b C c D d E e
    2 10
    ABCDEabcde abcdeEDCBA
    
    예상 출력
    2
    6
    0
    0
    1