2025/04/15 6

[SQL] LeetCode 182번 문제 학습

문제 설명Duplicate Emails는 Person 테이블에서 중복된 이메일을 찾는 거임. email 컬럼에서 두 번 이상 등장하는 이메일만 리턴.결과는 Email이라는 컬럼 이름으로 출력.테이블 구조:Person: id (PK), email.EX:{id: 1, email: "a@b.com"}, {id: 2, email: "c@d.com"}, {id: 3, email: "a@b.com"} 있으면,"a@b.com"이 두 번 나왔으니까 결과는 "a@b.com".푼 과정중복된 이메일을 찾으려면 같은 email이 몇 번 나왔는지 세야 함.GROUP BY email로 이메일별 그룹 만들고, COUNT로 각 그룹의 행 수 셈.HAVING으로 횟수가 2 이상인 그룹만 남김.마지막으로 email을 EMAIL로 출력...

leetcode , 백준 2025.04.15

[SQL] LeetCode 181번 문제 학습

문제 설명Employees Earning More Than Their Managers는 Employee 테이블에서 매니저보다 월급이 많은 직원을 찾는 거임. Employee 테이블에서 직원의 name을 리턴.조건: 직원의 salary가 자기 매니저의 salary보다 커야 함.테이블 구조:Employee: id (PK), name, salary, managerId (FK, 매니저의 id 참조. NULL일 수 있음).예를 들어:{id: 1, name: "Joe", salary: 70000, managerId: 3} 있고,{id: 3, name: "Sam", salary: 60000, managerId: NULL} 있으면,Joe의 월급(70000)이 매니저 Sam의 월급(60000)보다 크니까 Joe가 결과에..

leetcode , 백준 2025.04.15

[SQL] LeetCode 175번 문제 학습

문제 설명Combine Two Tables는 두 테이블, Person과 Address를 조인해서 특정 컬럼을 가져오는 문제임Person 테이블에서 firstName, lastName을 가져오고.Address 테이블에서 city, state를 가져옴.모든 Person의 정보를 포함해야 함, 근데 Address 정보는 없어도 괜찮음 (즉, Address에 매핑 안 되는 사람도 결과에 나와야 함).테이블 구조:Person: personId (PK), firstName, lastName.Address: addressId (PK), personId (FK), city, state.EX)Person에 {personId: 1, firstName: "John", lastName: "Doe"} 있고,Address에 {p..

leetcode , 백준 2025.04.15

[정렬] LeetCode 169번 문제 학습

문제 설명Majority Element는 정수 배열 nums에서 과반수(majority)를 차지하는 요소를 찾는 문제임.과반수 요소는 배열 길이 n 기준으로 n/2번 초과해서 등장하는 숫자임nums = [3,2,3] → 3이 답 (3이 두 번 나와서 n/2 = 1.5 초과).nums = [2,2,1,1,1,2,2] → 2가 답 (2가 네 번 나와서 n/2 = 3.5 초과).배열 길이 n은 1 이상.항상 과반수 요소가 존재함. 이게 중요! 따로 체크 안 해도 답이 무조건 있음.시간복잡도 O(n log n) 이하로 풀면 좋고, 가능하면 O(n)으로 푸는 게 이상적.공간복잡도는 O(1)로 최소화하는 방법도 있음.문제를 푼 과정정렬 함수 (sortExample)sort.Slice 써서 배열 nums를 오름차순으..

leetcode , 백준 2025.04.15

[재귀,반복문] LeetCode 144번 문제 학습

문제 설명Binary Tree Preorder Traversal는 이진 트리(Binary Tree)를 전위 순회(Preorder Traversal) 방식으로 탐색해서 노드 값들을 배열로 리턴하는 문제임. 전위 순회는:루트(Root) → 왼쪽 서브트리(Left) → 오른쪽 서브트리(Right) 순서로 방문하는 거.문제를 푼 과정메인 함수 (preorderTraversal)빈 슬라이스 list := []int{} 만들어서 결과 저장할 준비함.preOrder라는 헬퍼 함수 호출하면서 root랑 슬라이스 포인터(&list) 넘김.마지막에 list 리턴. 이게 최종 답임.재귀 헬퍼 함수 (preOrder)root가 nil이 아닌지 체크. nil이면 아무것도 안 하고 리턴.nil 아니면:현재 노드 값(root.Va..

카테고리 없음 2025.04.15

[재귀,반복문] LeetCode 145번 문제 학습

문제 설명Binary Tree Postorder Traversal는 이진 트리를 후위 순회(Postorder Traversal) 방식으로 탐색해서노드 값들을 배열로 리턴하는 거임. 왼쪽 서브트리(Left) → 오른쪽 서브트리(Right) → 루트(Root) 순서로 방문.문제를 푼 과정Preorder 코드에서 순서만 바꿔서 깔끔하게 풀었음. 메인 함수 (postorderTraversal)빈 슬라이스 list := []int{} 만들어서 결과 저장할 준비.postorder 헬퍼 함수 호출하면서 root랑 슬라이스 포인터(&list) 넘김.마지막에 list 리턴. 이 부분은 Preorder랑 똑같음.재귀 헬퍼 함수 (postorder)root가 nil인지 체크. nil이면 아무것도 안 하고 리턴.nil 아니면..

leetcode , 백준 2025.04.15