문제 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..
들어가며 오늘 알고리즘 문제는 문제를 이해하는 데에만 많은 시간이 걸렸다. 해설에도 시작부터 어려운 문제라고 하더라... 머리를 쥐어짜고 다른 수강생분들의 도움도 받아서 겨우 문제를 이해했지만 역시나 구현을 하질 못해서 해설을 봐야만 했다. 난 언제쯤 문제 하나를 스스로 풀 수 있게 될까... 뭐가 문제인걸까... 회의감이 드는 항해99 7일차. 오늘의 TIL은 스택의 개념의 정리와 오늘 푼 문제를 정리하고, 현재 하고 있는 고민인 앞으로의 항해99에 대해 작성해보고자 한다. 스택(Stack) 스택이란? 데이터를 일시적으로 저장하기 위해 사용하는 자료구조로, 데이터의 입력과 출력 순서는 후입선출(LIFO, Last In First Out)이다. Stack의 사전적 의미를 살펴보면 “a pile of ob..
들어가며 본 포스팅은 책에서 다룬 리트코드 문제들을 다루고 있습니다. 문제들은 모두 리트코드에서 출제된 문제들이며, 문제 풀이의 많은 부분을 책의 힌트와 해설을 참고하였습니다. 포스팅되는 모든 문제들의 목록과 풀이는 파이썬 알고리즘 인터뷰에서 제공하는 깃허브에서 확인하실 수 있습니다. 문제 Given the head of a singly linked list, group all the nodes with odd indices together followed by the nodes with even indices, and return the reordered list. The first node is considered odd, and the second node is even, and so on. Not..
들어가며 본 포스팅은 책에서 다룬 리트코드 문제들을 다루고 있습니다. 문제들은 모두 리트코드에서 출제된 문제들이며, 문제 풀이의 많은 부분을 책의 힌트와 해설을 참고하였습니다. 포스팅되는 모든 문제들의 목록과 풀이는 파이썬 알고리즘 인터뷰에서 제공하는 깃허브에서 확인하실 수 있습니다. 문제 Given the head of a singly linked list, reverse the list, and return the reversed list. 연결 리스트를 뒤집어라 입출력 예시 Example 1: Input: head = [1,2,3,4,5] Output: [5,4,3,2,1] Example 2: Input: head = [1,2] Output: [2,1] Example 3: Input: head = ..
들어가며 오늘의 강의 내용은 '연결 리스트'였다. 예전에 자료구조 공부한다고 깔짝였던 때에 연결리스트 강의를 들어놓은 적이 있어서 개념은 어렵지 않게 이해했는데 직접 구현하는 부분에서 애를 많이 먹었다. 여러가지 연결리스트 메소드를 직접 구현해보려고 했는데 실패하기도 했고, 몇가지 에러도 마주쳤다. 오늘의 TIL도 어제와 같이 강의 개념과 문제 정리를 하고 추가로 에러코드 트러블 슈팅도 해보자! 배열과 연결리스트 배열 여러 데이터를 저장하는 자료형 중에 가장 빨리 접근할 수 있는 자료구조 처음 생성 시 공간을 미리 할당해야하고, 생성 이후에는 크기 수정이 불가능하다. 처음에 공간을 정해두므로 데이터를 추가/삭제하는 과정이 쉽지 않다. 연결리스트(Linked List) 각 노드가 데이터와 포인터를 가지고 ..
들어가며 본 포스팅은 책에서 다룬 리트코드 문제들을 다루고 있습니다. 문제들은 모두 리트코드에서 출제된 문제들이며, 문제 풀이의 많은 부분을 책의 힌트와 해설을 참고하였습니다. 포스팅되는 모든 문제들의 목록과 풀이는 파이썬 알고리즘 인터뷰에서 제공하는 깃허브에서 확인하실 수 있습니다. 문제 You are given the heads of two sorted linked lists list1 and list2. Merge the two lists in a one sorted list. The list should be made by splicing together the nodes of the first two lists. Return the head of the merged linked list. 정렬되..
반응형