유효한 이메일
면접 대비시간 제한2초메모리 제한512 MB
각 이메일을 규칙에 따라 정규화한 뒤, 유효하고 서로 다른 주소의 개수를 센다.
문제
올해 인터넷 대회에는 여러 이메일 주소로 많은 사람이 등록했다. 유효하면서 서로 다른 이메일 주소가 몇 개나 등록되었는지 알아보려 한다.
유효한 이메일 주소는 사용자 이름과 도메인 이름이 문자 ‘@’로 구분된 형태이다. 사용자 이름은 문자(a-z, A-Z), 숫자(0-9), 밑줄(_), 마침표(.)로 이루어진 문자열이다. 사용자 이름은 마침표로 시작하거나 끝날 수 없고, 마침표가 연속으로 두 번 나올 수 없다. 이 규칙 외에 마침표는 이메일 주소에서 아무 의미가 없다(마침표를 지워도 주소가 달라지지 않는다). 사용자 이름의 대문자와 소문자는 같은 것으로 본다. 즉 사용자 이름 AliBaba와 ali.baba는 같은 것으로 본다. 사용자 이름은 모든 마침표를 지운 뒤 6자 이상 30자 이하여야 한다.
유효한 도메인 이름은 길이가 3 이상 30 이하이고, 마침표(.)로 구분된 도메인 부분들로 이루어진 문자열이다. 도메인 이름은 마침표로 시작하거나 끝나서는 안 된다. 각 도메인 부분은 문자(a-z, A-Z), 숫자(0-9), 붙임표(-)로 이루어진 비어 있지 않은 문자열이다. 도메인 이름의 대문자와 소문자도 같은 것으로 본다. 즉 Foo.bar는 foo.Bar와 같지만, Foo-Bar나 Foobar와는 다르다.
입력
입력의 첫째 줄에는 등록된 이메일 주소의 개수인 양의 정수 n (1 ⩽ n ⩽ 1000)이 주어진다. 다음 n개 줄에는 각각 길이가 100 이하이고 영문자, 숫자, ‘@’, ‘.’, ‘_’, ‘-’로 이루어진 이메일 주소가 하나씩 주어진다.
출력
유효하면서 서로 다른 이메일 주소의 개수를 정수 하나로 출력한다.