알고리즘 풀이/LeetCode 3

[LeetCode] 3. Longest Substring Without Repeating Characters

문제 보기 [사용한 알고리즘] 슬라이딩 윈도우 (Sliding Window) [설명] 사실 문제 봤을 때 슬라이딩 윈도우 알고리즘이 떠오르지 않았다. 뭔가 풀어본 문제인데 '어떻게 풀었지?'를 5번 이상 반복했다. 결국 집합(set)과 left, right 인덱스 두 개를 활용하도록 나만의 설계를 작성한 후 코드를 구현하였다. 하지만, 구현 후 코드를 다시 확인해보니 나만의 설계가 아니라 그냥 슬라이딩 윈도우 그 자체였다. 그래도 약 2년 전에 열심히 코딩 테스트 준비하였던 경험들이 아직 머릿속에 조금은 남아있는 듯하다. 알고리즘은 크게 어렵지 않다. 문자열 s의 길이가 2미만인 경우 문자열 s의 길이를 반환한다. 문자열 s의 길이가 2이상인 경우 중복 없는 최대 부분 문자열을 찾기 위해서 반복문을 수행..

[LeetCode] 2. Add Two Numbers

문제 보기 [사용한 알고리즘] x [설명] 연결 리스트의 개념을 이해하고 있으면 크게 어렵지 않은 문제라고 생각한다. l1, l2 각 값을 더한 후 해당 값을 역순으로 저장하는 연결 리스트를 구현하면 된다. 1. l1 연결리스트 값을 추출한다. 2. l2 연결리스트 값을 추출한다. 3. 추출한 두 값을 더한다. 4. 더한 값을 역순으로 연결 리스트에 저장한다. [코드] # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def addTwoNumbers(self, l1: Optional[ListNo..