[Medium] 두 숫자 더하기
문제: 두 개의 비어 있지 않은 연결 리스트가 주어지며, 이들은 두 개의 음이 아닌 정수를 나타냅니다. 숫자들은 역순으로 저장되 어 있으며, 각 노드는 하나의 숫자를 포함합니다. 두 숫자를 더하고 그 합을 연결 리스트로 반환하세요. 두 리스트의 숫자는 0인 경우를 제외하고 0으로 시작하지 않습니다. 예시1: Input: l1 = [2,4,3], l2 = [5,6,4] Output: [7,0,8] Explanation: 342 + 465 = 807. 예시2: Input: l1 = [0], l2 = [0] Output: [0] 예시3: Input: l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9] Output: [8,9,9,9,0,0,0,1] 제약 조건: 각 연결 리스트의 노드 수는 [1, ..
2024. 4. 3.
[코딩 인터뷰] 배열에서 k번째로 큰 요소 찾기
문제 설명: 정수 배열 nums와 정수 k가 주어질 때, 배열에서 k번째로 큰 요소를 반환하는 함수를 작성하세요. nums에는 중복된 요소가 포함될 수 있으며, k번째로 큰 요소를 찾을 때 중복을 고려합니다. 예를 들어, 배열이 [3,2,3,1,2,4,5,5,6]이고 k=4라면, 배열에서 네 번째로 큰 요소는 4입니다. 입력: nums: 정수 배열 k: 찾고자 하는 순서의 정수 출력: 배열에서 k번째로 큰 요소 예시: 입력: nums = [3,2,1,5,6,4], k = 2 출력: 5 입력: nums = [3,2,3,1,2,4,5,5,6], k = 4 출력: 4 풀이 및 해설 (Python): 퀵 정렬의 변형인 퀵 선택(Quick Select) 알고리즘을 사용하여, 전체 배열을 정렬하지 않고도 k번째로 ..
2024. 3. 28.
[코딩 인터뷰] 두 배열의 교집합 구하기
문제 설명: 두 개의 정수 배열 nums1과 nums2가 주어졌을 때, 이 두 배열의 교집합을 계산하는 함수를 작성하세요. 결과 배열에는 두 배열 모두에 나타나는 모든 고유한 정수가 포함되어야 합니다. 결과 배열의 순서는 상관 없습니다. 제한 사항: 결과 배열은 고유한 값만 포함해야 합니다. 즉, 중복된 원소를 제거해야 합니다. 입력으로 주어지는 두 배열의 길이는 최소 1 이상입니다. 입력: nums1: 첫 번째 정수 배열 nums2: 두 번째 정수 배열 출력: 두 배열의 교집합을 나타내는 정수 배열 예시: 입력: nums1 = [1, 2, 2, 1], nums2 = [2, 2] 출력: [2] 입력: nums1 = [4, 9, 5], nums2 = [9, 4, 9, 8, 4] 출력: [9, 4] 출력된 ..
2024. 3. 28.
[Easy] 삽입 위치 구하기
문제: 정렬된 정수형 배열과 삽입하려는 정수 값이 인수로 입력되면 해당 값이 삽입 될 배열의 인덱스를 리턴하는 함수를 구현하라.단, 배열 내에 중복이 존재할 수 없다. 따라서 이미 배열에 값이 존재한다면 해당하는 값의 인덱스를 리턴한다. 예제 1:Input : [1,3,5,6], 5 Output : 2 예제 2:Input : [1,3,4,5], 2Output : 1 예제 3:Input : [1,3,5,6], 7Output: 4 풀이:바이너리 탐색 알고리즘을 활용하여 값을 찾아간다.바이너리 탐색 알고리즘은 중간 값을 구해서 중간 값이 타겟이 되는 값보다 크다면 왼쪽 편을 탐색하고 작다면 오른 쪽을 탐색하는 알고리즘이다.배열에서 중간이 되는 인덱스를 구하는 것은 작은 쪽 인덱스와 큰 쪽 인덱스를 합쳐서 2로..
2017. 12. 14.