본문 바로가기
PROGRAMMING/LeetCode

[Leetcode] 182. Duplicate Emails_해설, 풀이, 설명

by HYUNHP 2022. 9. 12.
반응형

안녕하세요, HELLO

 

오늘은 Leetcode 알고리즘 문제 '182. Duplicate Emails'에 대해서 살펴보고자 합니다. 

 

알고리즘 문제, 코드, 해설 그리고 Leetcode에서 제공해준 solution 순서대로 정리하였습니다.


STEP 1. 'Duplicate Emails' 알고리즘 문제

 

STEP 2. 'Duplicate Emails' 코드(code)

 

STEP 3. 'Duplicate Emails' 해설

 

STEP 4. 'Duplicate Emails' solution

 

반응형

 

STEP 1. 'Duplicate Emails' 알고리즘 문제

 

Write an SQL query to report all the duplicate emails.

Return the result table in any order.

 

모든 중복 email을 반환하는 SQL query를 작성하면 됩니다.

이때, 결과 테이블은 순서에 상관없습니다.

 

The query result format is in the following example.


STEP 2. 'Duplicate Emails' 코드(code)

 

■ Runtime: 377 ms, faster than 68.40% of MySQL online submissions for Duplicate Emails.
■ Memory Usage: 0B, less than 100.00% of MySQL online submissions for Duplicate Emails.

 

# Write your MySQL query statement below

SELECT email 
FROM Person
GROUP BY Person.email
HAVING COUNT(*) >=2;

STEP 3. 'Duplicate Emails' 해설

 

Person 테이블에서 해당하는 조건인 email을 group by를 통해 중복된 경우(2개 이상)에 email을 반환하는 방식으로, query를 작성했습니다.

 

728x90

 

STEP 4. 'Duplicate Emails' solution

 

추가적으로, Leetcode에서 제공해준 solution 코드를 살펴보겠습니다.

이번에는 cross join을 통해서 테이블을 연결해서 email이 동일한 경우와 id가 다른 경우에 email을 반환합니다.

 

■ Runtime: 421 ms, faster than 54.47% of MySQL online submissions for Duplicate Emails.
■ Memory Usage: 0B, less than 100.00% of MySQL online submissions for Duplicate Emails.

 

# Write your MySQL query statement below

SELECT DISTINCT P1.email 
FROM PERSON AS P1 
CROSS JOIN PERSON AS P2 
WHERE P1.email = P2.email 
    AND P1.id <> P2.id;

■ 마무리

 

오늘은 Leetcode 알고리즘 문제 '182. Duplicate Emails'에 대해서 알아봤습니다.

좋아요와 댓글 부탁드리며,

오늘 하루도 즐거운 날 되시길 기도하겠습니다 :)

감사합니다.

 

반응형

댓글