웹 개발자 아란은 nexon.com의 회원가입 페이지를 개발했다. 회원가입을 할 때, 개인이 누구인지 확인하는 방법은 여러 가지가 있지만, nexon.com에서 사용하려는 방식은 이메일을 사용하는 것이다. 아란은, 어떤 이메일 주소로 회원가입을 신청하면, 신청한 사람이 이메일을 소유하고 있는지 확인하기 위해 이메일을 보내서 받을 수 있는지 확인하는 회원가입 페이지를 만들었다. 하지만, 사람들이 이메일을 잘못 작성하여 이메일을 다시 입력 해야 하는 경우가 많이 생기자, 아란은 이메일이 올바른 이메일인지 체크하는 것을 구현하기로 했다.
nexon.com에서 사용할 수 있는 이메일의 규칙은 다음과 같다.
@
기호를 넣어서 구분한다.A
, B
, ..., Z
)a
, b
, ..., z
)0
, 1
, ..., 9
)-
, .
)예를 들면, baz.zi@nypc.co.kr
이란 이메일의 로컬 파트는 baz.zi
이고, 도메인 파트는 nypc.co.kr
이다. 모두 사용 가능한 이메일 문자들만 쓰였기 때문에, 이는 올바른 이메일이다.
하지만, #dao#@.nexon._com
은 사용할 수 있는 이메일이 아니다. 왜냐하면 로컬 파트가 #dao#
인데, 로컬 파트에 이메일 문자가 아닌 #
이 들어가 있기 때문이다. 또한, 도메인 파트는 .nexon._com
인데, 도메인 파트에서 이메일 문자가 아닌 _
가 쓰였다.
또한, A@B@C
와 nexon.com
도 사용할 수 있는 이메일이 아닌데, 로컬파트와 도메인 파트를 구분하는 @
기호가 없거나 두 개 이상으로 로컬 파트와 도메인 파트를 구분할 수 없기 때문이다.
어떤 이메일이 주어졌을 때, nexon.com의 새로운 홈페이지에서 사용할 수 있는 이메일인지 확인하여라.
첫째 줄에는 확인할 이메일의 수 N이 주어진다. ()
다음 N개의 줄에는 한 줄에 하나씩 이메일 주소가 주어진다. 문자열의 길이는 이상 이하이고, 출력할 수 있는 문자 중 공백과 <DEL>
을 제외한 문자들로 (아스키 코드 33(!
) 이상, 126(~
) 이하) 로 이루어져 있다.
출력은 개의 줄로 이루어져 있다. 번째 입력받은 이메일 주소가 사용할 수 있는 이메일이면 Yes
, 아니면 No
를 출력하여라.
4 baz.zi@nypc.co.kr #dao#@.nexon._com A@B@C nexon.com
Yes No No No
입력 케이스들은 다음과 같은 종류로 구별되며, 한 종류의 케이스를 다 맞추어야 그 종류에 배정된 점수를 받을 수 있다.
종류 1: 17점
입력에 @
은 정확히 한 개 존재하며, 도메인 파트는 nexon.com
이다.
종류 2: 17점
입력에 @
은 정확히 한 개 존재하며, 로컬 파트는 bazzi
이다.
종류 3: 31점
입력의 첫 문자나 마지막 문자는 @
이 아니다.
종류 4: 35점
별다른 제약조건 없음.