들어가며 본 포스팅은 책에서 다룬 리트코드 문제들을 다루고 있습니다. 문제들은 모두 리트코드에서 출제된 문제들이며, 문제 풀이의 많은 부분을 책의 힌트와 해설을 참고하였습니다. 포스팅되는 모든 문제들의 목록과 풀이는 파이썬 알고리즘 인터뷰에서 제공하는 깃허브에서 확인하실 수 있습니다. 문제 Design a HashMap without using any built-in hash table libraries. Implement the MyHashMap class: MyHashMap() initializes the object with an empty map. void put(int key, int value) inserts a (key, value) pair into the HashMap. If the ke..
전체 글
들어가며 해시 테이블은 개념이 연결리스트에 비해 크게 어렵지는 않았지만 여전히 코드 구현은 몇시간이고 붙잡고 있어도 해결이 안된다. 오늘 구현이 안됐던 이유는 문제 접근부터가 잘못되었어서였던거 같아서 오늘의 TIL은 문제를 풀면서 고민했던 것과 해시 테이블의 개념정리를 해보고자한다! 해시테이블 해시 테이블이란? 키에 값을 매핑할 수 있는 구조인, 연관 배열 추상 자료형(ADT)를 구현하는 자료구조이다. ‘키와 값을 매핑한다’ 비슷한게 생각이 난다. 바로 딕셔너리(dictionary)이다. (자바에서는 map, 자바스크립트에서는 object 등등) 해시 테이블을 사용하는 이유는 뭘까? 간단하게 레스토랑의 메뉴를 배열과 비교하여 예시로 생각해보자. 메뉴판에는 각 메뉴와 그 메뉴의 가격이 적혀있다. 이걸 배열..
들어가며 본 포스팅은 책에서 다룬 리트코드 문제들을 다루고 있습니다. 문제들은 모두 리트코드에서 출제된 문제들이며, 문제 풀이의 많은 부분을 책의 힌트와 해설을 참고하였습니다. 포스팅되는 모든 문제들의 목록과 풀이는 파이썬 알고리즘 인터뷰에서 제공하는 깃허브에서 확인하실 수 있습니다. 문제 Given a string s, find the length of the longest substring without repeating characters. 중복 문자가 없는 가장 긴 부분 문자열의 길이를 리턴하라 입출력 예시 Example 1: Input: s = "abcabcbb" Output: 3 Explanation: The answer is "abc", with the length of 3. Example ..
들어가며 본 포스팅은 책에서 다룬 리트코드 문제들을 다루고 있습니다. 문제들은 모두 리트코드에서 출제된 문제들이며, 문제 풀이의 많은 부분을 책의 힌트와 해설을 참고하였습니다. 포스팅되는 모든 문제들의 목록과 풀이는 파이썬 알고리즘 인터뷰에서 제공하는 깃허브에서 확인하실 수 있습니다. 문제 You're given strings jewels representing the types of stones that are jewels, and stones representing the stones you have. Each character in stones is a type of stone you have. You want to know how many of the stones you have are also ..
들어가며 할게 너무 많은데 어제 늦게자는 바람에 하루종일 피곤해서 제대로 공부 못했다. 페이스 조절이 중요한데 자꾸 욕심부리게 된다. 어제도 그렇게까지 할 생각은 아니었는데... 낮 시간에 의미없이 보내는 시간들을 줄이는게 일찍잘 수 있는 방법이지 않을까 싶다. 아무튼, 졸린눈을 부여잡고 오늘의 TIL은 큐에 대한 정리와 문제풀이를 하고자한다. 큐(Queue) 큐는 시퀀스의 한쪽 끝에는 엔티티를 추가하고, 다른 반대쪽 끝에는 제거할 수 있는 엔티티 컬렉션이다. 쉽게 말하면 한쪽 끝으로 자료를 넣고, 반대쪽에서는 자료를 뺄 수 있는 선형구조로, 데이터의 입력과 출력 순서는 선입선출(FIFO, Fisrt In First Out)이다. 큐는 스택에 비해서는 상대적으로 쓰임새가 적다고 한다. 엥? 근데 왜이렇게..
문제 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 한 장 남을 때까지 반복하게 된다. 우선, 제일 위에 있는 카드를 바닥에 버린다. 그 다음, 제일 위에 있는 카드를 제일 아래에 있는 카드 밑으로 옮긴다. 예를 들어 N=4인 경우를 생각해 보자. 카드는 제일 위에서부터 1234 의 순서로 놓여있다. 1을 버리면 234가 남는다. 여기서 2를 제일 아래로 옮기면 342가 된다. 3을 버리면 42가 되고, 4를 밑으로 옮기면 24가 된다. 마지막으로 2를 버리고 나면, 남는 카드는 4가 된다. N이 주어졌을 때, 제일 마지막에 남게 되는 카드를 구하는 프로..
들어가며 본 포스팅은 책에서 다룬 리트코드 문제들을 다루고 있습니다. 문제들은 모두 리트코드에서 출제된 문제들이며, 문제 풀이의 많은 부분을 책의 힌트와 해설을 참고하였습니다. 포스팅되는 모든 문제들의 목록과 풀이는 파이썬 알고리즘 인터뷰에서 제공하는 깃허브에서 확인하실 수 있습니다. 문제 Design your implementation of the circular queue. The circular queue is a linear data structure in which the operations are performed based on FIFO (First In First Out) principle and the last position is connected back to the first pos..
들어가며 본 포스팅은 책에서 다룬 리트코드 문제들을 다루고 있습니다. 문제들은 모두 리트코드에서 출제된 문제들이며, 문제 풀이의 많은 부분을 책의 힌트와 해설을 참고하였습니다. 포스팅되는 모든 문제들의 목록과 풀이는 파이썬 알고리즘 인터뷰에서 제공하는 깃허브에서 확인하실 수 있습니다. 문제 Given an array of integers temperatures represents the daily temperatures, return an array answer such that answer[i] is the number of days you have to wait after the ith day to get a warmer temperature. If there is no future day for w..
들어가며 본 포스팅은 책에서 다룬 리트코드 문제들을 다루고 있습니다. 문제들은 모두 리트코드에서 출제된 문제들이며, 문제 풀이의 많은 부분을 책의 힌트와 해설을 참고하였습니다. 포스팅되는 모든 문제들의 목록과 풀이는 파이썬 알고리즘 인터뷰에서 제공하는 깃허브에서 확인하실 수 있습니다. 문제 Given a string s, remove duplicate letters so that every letter appears once and only once. You must make sure your result is the smallest in lexicographical order among all possible results. 중복된 문자를 제외하고 사전식 순서로 나열하라. 입출력 예시 Example 1..
들어가며 본 포스팅은 책에서 다룬 리트코드 문제들을 다루고 있습니다. 문제들은 모두 리트코드에서 출제된 문제들이며, 문제 풀이의 많은 부분을 책의 힌트와 해설을 참고하였습니다. 포스팅되는 모든 문제들의 목록과 풀이는 파이썬 알고리즘 인터뷰에서 제공하는 깃허브에서 확인하실 수 있습니다. 문제 Given a string s containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid. An input string is valid if: Open brackets must be closed by the same type of brackets. Open brackets must be clos..
반응형