본문 바로가기

코딩테스트

Leetcode 75 day14 (Max Number of K-Sum Pairs, Equal Row and Column Pairs, Asteroid Collision) 리트코드 75 14일 차. Two pointers 1문제, 해시맵 1문제, 스택 1문제를 풀어봤다. 1679. Max Number of K-Sum Pairs 정수 배열 nums와 정수 k가 주어졌을 때, 배열에서 2개의 숫자 합이 k가 되는 숫자를 찾고 배열에서 삭제한다. 배열 상에서 위 작업을 할 수 있는 최대 횟수를 리턴하라. You are given an integer array nums and an integer k. In one operation, you can pick two numbers from the array whose sum equals k and remove them from the array. Return the maximum number of operations you can p.. 더보기
Leetcode 75 day13 (Implement Trie (Prefix Tree), Search Suggestions System, Minimum Flips to Make a OR b Equal to c) 열심히 썼는데 내용이 다 날아가서... 기운이 안 나지만 다시 써본다.. ㅋㅋ 리트코드 75 13일 차 Trie 2 문제, 비트 조작 1 문제를 풀어봤다. 이제 쉬운 미디엄은 거의 다 풀었는지 한 번에 풀리는 문제는 잘 없는 것 같다. 종종 에지 테스트 케이스에서 걸리는 경우가 있어서 서브밋 하기 전에 에지 케이스 생각해 보고 꼭 테스트해 보고 가는 습관을 들여야 하겠다. 208. Implement Trie (Prefix Tree) Trie(트라이) 또는 prefix 트리는 문자열을 효율적으로 저장하고 가져오는 트리 자료구조다. 이 자료 구조는 자동완성이나 철자검사 등 다양한 응용이 있다. Trie 클래스를 다음과 같이 구현하라: Trie() 생성자는 Trie 객체를 초기화한다. insert() 메서드는.. 더보기
Leetcode 75 day12 (Unique Paths, House Robber, Smallest Number in Infinite Set) 리트코드 75 12일 차, DP 2문제와 Heap을 사용하는 문제를 풀어봤다. DP는 쉬운 문제는 쉬운데 어려운 문제는 감이 안 잡히는 게 문제다.. 62. Unique Paths m x n 배열 위에 로봇이 있다. 로봇은 최초에 좌상단 모서리(grid[0][0])에 있다. 로봇은 우하단 모서리(grid[m-1][n-1])로 가려고 한다. 로봇은 한 번에 오른쪽 또는 아래로 이동할 수 있다. m, n이 주어졌을 때 로봇이 우하단 모서리로 갈 수 있는 가능한 고유한 경로의 수를 구해라. There is a robot on an m x n grid. The robot is initially located at the top-left corner (i.e., grid[0][0]). The robot tries.. 더보기
Leetcode 75 day11 (Unique Number of Occurrences, Reverse Linked List, Leaf-Similar Trees) 리트코드 75 11일 차, Hash Map, Linked List, DFS 패턴 문제를 하나씩 풀어봤다. 1207. Unique Number of Occurrences 주어진 배열 arr에 대해서 각 값이 출현한 횟수가 unique 하다면 true, 그렇지 않으면 false를 리턴한다. Given an array of integers arr, return true if the number of occurrences of each value in the array is unique or false otherwise. 각 문자가 출현한 횟수를 해시맵에 저장한 다음(freqMap), 출현한 횟수로 Set을 만들어서(freqSet) 둘의 크기가 같은지 확인한다. 만약 출현한 횟수가 unique 하다면 freqM.. 더보기
Leetcode 75 day10 (String Compression, Container With Most Water, Reverse Words in a String) 리트코드 75 10일 차, Array / String 2문제, Two pointers 1문제를 풀었다. 443. String Compression 주어진 문자열에서 연속으로 나오는 문자가 있을 때, 길이가 1이면 해당 문자만, 더 길다면 해당 문자 개수를 덧붙여준다. 압축된 문자열은 따로 반환하지 않고 입력 문자 배열에 덮어쓴다. 문자열 길이가 10보다 큰 경우는 길이가 나눠서 저장된다. 반환값은 새로운 배열의 길이를 반환한다. 알고리즘은 상수개의 공간만 사용해야 한다. Given an array of characters chars, compress it using the following algorithm: Begin with an empty string s. For each group of conse.. 더보기
Leetcode 75 day9 (Rotting Oranges, Keys and Rooms, Number of Provinces) 리트코드 75 9일 차, BFS, DFS 문제 패턴을 풀어봤다. 994. Rotting Oranges m x n 배열이 주어졌을 때 값은 0, 1, 2 세 종류의 값 중 하나를 가진다. 0은 빈칸, 1은 신선한 오렌지, 2는 썩은 오렌지를 의미한다. 매 분마다 동서남북으로 썩은 오렌지에 인접한 신선한 오렌지는 썩게 된다. 신선한 오렌지가 존재하지 않을 때까지 걸리는 시간(분)을 리턴해야 한다. 만약 불가능하다면 -1을 리턴한다. You are given an m x n grid where each cell can have one of three values: 0 representing an empty cell,1 representing a fresh orange, or2 representing a rot.. 더보기
Leetcode 75 day8 (N-th Tribonacci Number, Min Cost Climbing Stairs, Single Number) 1차원 DP 문제 둘, 비트연산 문제 하나 1137. N-th Tribonacci Number 피보나치 넘버가 아닌 n 번째 트리보나치 넘버 문제. The Tribonacci sequence Tn is defined as follows: T0 = 0, T1 = 1, T2 = 1, and Tn+3 = Tn + Tn+1 + Tn+2 for n >= 0. Given n, return the value of Tn. 피보나치는 동적 프로그래밍 단골 예제라 설명할 것도 없다. class Solution { private int[] trib = {0, 1, 1}; public int tribonacci(int n) { if (n < 3) { return trib[n]; } int[] ret = new int[n+1].. 더보기
Leetcode 75 day7 (Search in a Binary Search Tree, Kth Largest Element in an Array, Nearest Exit from Entrance in Maze) Leetcode 75를 시작한 지 벌써 일주일째. 벌써 21 문제를 풀었다. 18일만 더 풀면 된다. 한 가지 문제 패턴을 하루에 모두 풀지 않는 이유는 장기 기억 관점에서 Spaced Repetition이 유리하기 때문이다. 그래서 다양한 유형의 문제를 번갈아가면서 풀면서 모든 패턴을 푸는 방법을 장기적으로 기억하는 게 목표다. 700. Search in a Binary Search Tree 이진 검색 트리에서 검색하는 문제. You are given the root of a binary search tree (BST) and an integer val. Find the node in the BST that the node's value equals val and return the subtree ro.. 더보기