문제 분류 수업 진도 대회 채점현황 순위 질문게시판
게임
스도쿠 타이핑 리듬 타자게임 타이핑 테트리스 타이핑 인베이더 타이핑 지뢰찾기 8192 공룡게임 타이핑 플래피버드 랭킹
로그인

7019 : 이메일 주소 유효성 검사

•시간제한: 1.000 S •메모리제한: 256 MB •제출: 10 •통과: 1 •만든사람: suakii

7019 : 이메일 주소 유효성 검사

시간 1.000s · 메모리 256MB · 제출 10 · 정답 1

문제 설명

주어지는 여러 개의 이메일 주소 후보 문자열에 대하여, 아래 규격에 부합하는 올바른 형식의 이메일 주소인지 검사하는 프로그램을 작성하시오. 올바른 이메일 주소의 규격은 다음과 같다.

1. 문자열 내에 `@` 기호가 정확히 $1$개 존재해야 한다.

2. `@` 기호 앞의 로컬 파트(Local part)는 최소 $1$자 이상이어야 하며, 알파벳 대소문자, 숫자, 마침표(`.`), 밑줄(`_`), 하이픈 `-` 문자로만 이루어져 있어야 한다.

3. `@` 기호 뒤의 도메인 파트(Domain part)는 마지막에 마침표(`.`)를 하나 이상 포함하여 최소 하나 이상의 서브 도메인과 최상위 도메인(TLD)으로 이루어져 있어야 한다. (도메인 파트에는 알파벳, 숫자, 마침표, 하이픈만 허용된다.)

4. 마지막 마침표(`.`) 뒤에 위치하는 최상위 도메인(TLD)은 최소 $2$자 이상, 최대 $6$자 이하이어야 하며, 알파벳 대소문자로만 이루어져 있어야 한다.

[제약 조건]
• 후보 문자열 수 $N$: $1 \le N \le 100$
• 각 문자열의 길이: $1 \le |S| \le 100$

입력 설명

첫째 줄에 검사할 이메일 후보 문자열의 개수 주어진다. 둘째 줄부터 줄에 걸쳐 이메일 후보 문자열이 한 줄에 하나씩 주어진다. ($1 \le N \le 100$, 각 문자열의 길이 $\le 100$)

출력 설명

각 문자열별로 규격에 유효하면 `VALID`, 유효하지 않으면 `INVALID`를 한 줄에 하나씩 출력한다.

입력 예시
COPY
복사되었습니다!

3
test@example.com
invalid-email
user@domain.co.kr

출력 예시
COPY
복사되었습니다!

VALID
INVALID
VALID

도움

로컬 파트와 도메인 파트 및 TLD를 각각 split하여 규칙 조건과 정규식 검사를 분기하여 처리한다.

NOTICE  —  BFStudy OJ 정보샘
애들아, 문제 많이 풀고 게임 잠깐 하는거지?
— 정보샘