[코딩테스트]/[SQL]

[LeetCode - SQL] (Easy) 3436. Find Valid Emails

잰잰' 2025. 4. 14. 12:24
Table: Users

+-----------------+---------+
| Column Name     | Type    |
+-----------------+---------+
| user_id         | int     |
| email           | varchar |
+-----------------+---------+

(user_id)는 이 테이블의 고유 키입니다.
테이블의 각 행은 사용자의 고유 ID와 이메일 주소를 포함합니다.

 

문제

유효한 이메일 주소를 모두 찾는 SQL 쿼리를 작성하세요.

유효한 이메일 주소는 다음 조건을 만족해야 합니다:

- 정확히 하나의 @ 기호가 포함되어야 합니다.

- .com으로 끝나야 합니다.

- @ 기호 앞부분은 알파벳, 숫자, 밑줄(_)만 포함할 수 있습니다.

- @ 기호와 .com 사이의 도메인 이름은 알파벳만 포함해야 합니다.

결과 테이블은 user_id 기준으로 오름차순 정렬하여 반환하세요.

Example:

Input:

Users table:

+---------+---------------------+
| user_id | email               |
+---------+---------------------+
| 1       | alice@example.com   |
| 2       | bob_at_example.com  |
| 3       | charlie@example.net |
| 4       | david@domain.com    |
| 5       | eve@invalid         |
+---------+---------------------+
Output:

+---------+-------------------+
| user_id | email             |
+---------+-------------------+
| 1       | alice@example.com |
| 4       | david@domain.com  |
+---------+-------------------+

설명:

- alice@eaxample.com은 유효합니다. 이유는 하나의 @ 기호가 포함되어 있고, "alice"는 알파벳과 숫자로 이루어져 있으며, "example.com"은 알파벳으로 시작하고 .com으로 끝납니다.

- bob_at_example.com은 유효하지 않습니다. 이유는 @ 기호 대신 밑줄(_)이 포함되어 있기 때문입니다.

- charlie@example.net은 유효하지 않습니다. 이유는 도메인이 .com으로 끝나지 않기 때문입니다.

- david@domain.com은 유효합니다. 모든 조건을 만족하기 때문입니다.

- eve@invalid는 유효하지 않습니다. 이유는 도메인이 .com으로 끝나지 않기 때문입니다.

결과 테이블은 user_id 기준으로 오름차순 정렬됩니다.

 

✏️ 풀이

SELECT user_id, email
FROM Users
WHERE email REGEXP '[a-zA-Z0-9_]+@[a-zA-Z]+.com$'
ORDER BY user_id;

 

프로그래머스 문제를 다 풀어서 leetcode로 넘어왔는데 문제가 pandas랑 동일 한 것 같아

같은 문제로 pandas, sql, java  등등 여러 언어로 푸는 방식인 것 같아서 다른 사이트를 찾아보려고 한다