분류 전체보기
-
2130. Maximum Twin Sum of a Linked List코딩테스트 2024. 6. 7. 18:14
https://leetcode.com/problems/maximum-twin-sum-of-a-linked-list/description/ 문제n이 짝수인 크기의 링크된 목록에서 0 예를 들어 n = 4인 경우 노드 0은 노드 3의 쌍둥이이고 노드 1은 노드 2의 쌍둥이입니다. 이들은 n = 4에 대해 쌍둥이를 가진 유일한 노드입니다. 쌍둥이 합은 노드와 그 쌍둥이의 합으로 정의됩니다.길이가 짝수인 연결된 목록의 헤드가 주어지면, 연결된 목록의 최대 쌍둥이 합을 반환합니다. 풀이기본적인 풀이 접근 방식은 다음과 같다. twin의 합을 구하는 가장 쉬운 방법은 가장 처음 시작 인덱스와 가장 마지막 인덱스가 twin 관계이기 때문에 이 두 지점부터 시작하여, 점점 한 칸씩 이동해서 합을 구하고 가장 큰 합을 ..
-
리트코드 - 328. Odd Even Linked List코딩테스트 2024. 6. 7. 15:55
https://leetcode.com/problems/odd-even-linked-list/description/?envType=study-plan-v2&envId=leetcode-75 문제단일 링크된 목록의 헤드가 주어지면 인덱스가 홀수인 모든 노드와 짝수인 노드를 함께 그룹화하고 다시 정렬된 목록을 반환합니다.첫 번째 노드는 홀수 노드, 두 번째 노드는 짝수 노드로 간주하는 식입니다.짝수 그룹과 홀수 그룹 내부의 상대적 순서는 입력에 있는 그대로 유지되어야 한다는 점에 유의하세요.O(1)의 추가 공간 복잡도와 O(n)의 시간 복잡도로 문제를 풀어야 합니다. 풀이1. 홀수 번째에 위치한 노드만 먼저 순차적으로 나오고 그 다음 짝수 번째 노드들이 순차적으로 나와야 한다.2. 홀수 번째 노드를 가리키는 노..
-
리트코드 2095. Delete the Middle Node of a Linked List코딩테스트 2024. 5. 15. 22:39
https://leetcode.com/problems/delete-the-middle-node-of-a-linked-list/description/ 이 문제는 연결 리스트(linked list)에서 중간 노드를 삭제하는 문제이다. 중간 노드는 n개의 노드가 있을 때 ⌊n / 2⌋번째 노드이다.문제를 해결하기 위한 접근 방법은 다음과 같습니다:접근 방법리스트 길이 계산: 먼저, 연결 리스트를 순회하면서 전체 길이 n을 계산한다.중간 노드 위치 계산: 중간 노드의 인덱스는 ⌊n/2⌋로 계산한다.중간 노드 삭제:만약 중간 노드가 첫 번째 노드라면 (즉, n이 1이라면), 리스트의 head를 다음 노드로 바꾼다.중간 노드가 다른 위치에 있다면, 리스트를 다시 순회하면서 중간 노드의 바로 전 노드를 찾은 다음, ..
-
리트코드 649. Dota2 Senate코딩테스트 2024. 5. 12. 15:02
https://leetcode.com/problems/dota2-senate/description/ 각 센터는 자신의 권리를 이용하여 상대방 센터의 권리를 박탈하거나, 동료만 남았을 경우 승리를 선언할 수 있다.최종적으로는 한 편이 완전히 권리를 상실하게 되어 반대 편이 승리를 선언하게 된다.문제 해설:1. 큐(Queue) 사용:이 문제를 해결하기 위한 핵심 아이디어는 각 센터가 상대방 센터를 얼마나 많이 "배제할 수 있는지" 추적하는 것이다.이를 위해 두 개의 큐를 사용한다Radiant 큐: Radiant 센터의 인덱스를 저장Dire 큐: Dire 센터의 인덱스를 저장2. 순차적으로 배제 반복:각 센터는 순차적으로 자신의 권리를 사용하여 상대방의 투표권을 배제한다. 이때, 자신보다 인덱스가 앞선 상대방..
-
feat: TO DO API프로젝트/Simple-User 2024. 5. 1. 18:21
https://github.com/Daeell/simple-user/commit/291c8de5ae7e07e8392da3990d475c24984f8193 feat: To Do API · Daeell/simple-user@291c8deTO DO LIST 작성 APIgithub.com TO_DOS = { 1: {"id": 1, "task": "Buy groceries", "status": True}, 2: {"id": 2, "task": "Clean the house", "status": False}, 3: {"id": 3, "task": "Walk the dog", "status": False},}간단한 todo list에 대한 crud api를 만들어 보았다. READ) 단일 TODO 리..
-
feat: 프로젝트 초기 구축프로젝트/Simple-User 2024. 5. 1. 18:19
https://github.com/Daeell/simple-user/commit/c625536f462673257c747745d19429523d5056e2 feat: 프로젝트 초기 구축 · Daeell/simple-user@c625536* poetry + docker를 활용하여 개발 환경 구축 * fastapi를 활용하여 초기 api 구현github.com해당 커밋의 주요 목적은 다음과 같았다.* poetry + docker를 활용하여 개발 환경 구축* fastapi를 활용하여 초기 api 구현의존성 관리 도구 - PoetryPython 개발 환경에서 패키지를 설치하는 데는 pip를 사용할 수 있다. 때로는 예상치 못한 Python 버전 환경이나 패키지 버전으로 인해 개발 환경이 엉망이 될 수도 있다.따라..
-
리트코드 - 1493. Longest Subarray of 1's After Deleting One Element코딩테스트 2024. 3. 2. 16:24
https://leetcode.com/problems/longest-subarray-of-1s-after-deleting-one-element/description/ Longest Subarray of 1's After Deleting One Element - LeetCode Can you solve this real interview question? Longest Subarray of 1's After Deleting One Element - Given a binary array nums, you should delete one element from it. Return the size of the longest non-empty subarray containing only 1's in the res..
-
리트코드 - 394. Decode String코딩테스트 2024. 2. 10. 15:52
스택을 초기화한다. 각 문자를 반복한다. 숫자인 경우: 숫자가 두 자리 이상일 수도 있기 때문에, '['가 나올 때까지 전체 숫자를 추적한다. '['인 경우 : 현재까지의 완성된 문자열과 반복할 숫자를 stk에 저장한다. ']'인 경우: 스택을 pop한다. 그러면 현재까지 완성된 문자열과 반복할 숫자가 반환될 것이다. 그러면 반복할 숫자에 현재 문자열을 곱하고 완성된 문자열 뒤에 붙여준다. 문자열일 경우 : 현재 문자열에 추가한다. class Solution: def decodeString(self, s: str) -> str: stk = [] num = 0 current_str = "" for c in s: # O(n) if c.isdigit(): # O(1) 실제로 isdigit의 시간복잡도는 O(n..