profile
길을 찾는 개발자
post-thumbnail

Daily LeetCode Challenge - 50. Pow(x, n)

Problem From. https://leetcode.com/problems/powx-n/ 오늘 문제는 pow 함수를 구현하는 문제였다. 이 문제는 dfs 와 각각의 경우를 나누어서 풀 수 있었는데, 먼저 n 이 0 인 경우 1을 반환해주고, n 이 0 보다 작은 경우 분수 계산을 해주고 그 이외의 경우에는 pow 계산을 하도록 나누어서 재귀를 해주었다.

2023년 7월 24일
·
0개의 댓글
·
post-thumbnail

Daily LeetCode Challenge - 688. Knight Probability in Chessboard

Problem From. https://leetcode.com/problems/knight-probability-in-chessboard/ 오늘 문제는 체스판에서 knight 가 움직일때, 각각의 랜덤한 움직임으로 체스말이 체스판에 남아있는지 보는 문제였다. 이 문제는 dp 를 이용해서 풀 수 있었는데, 먼저 각각의 움직임을 지정해줄 pair array 를 만들고, 그 pair array 를 반복해주면서, 각각의 움직임을 기록해나간다. 기록해나간 움직임을 dp 로 불러와서 반복해주면서, 몇개의 경우의 수에 남아있는지 보면 되었다.

2023년 7월 22일
·
1개의 댓글
·
post-thumbnail

Daily LeetCode Challenge - 673. Number of Longest Increasing Subsequence

Problem From. https://leetcode.com/problems/number-of-longest-increasing-subsequence/ 오늘 문제는 주어진 nums 배열에서 오름차순으로 배열되어있는 subsequence 의 갯수를 구하는 문제였다. 이 문제는 dp 를 이용해서 풀 수 있었는데, 각각의 원소를 검사해나가면서, 먼저 dp 배열에 오름차순으로 배열된 리스트를 추가해나간다. 그리고 다음 원소를 추가할때, 다음으로 높은 원소를 검사하면서 dp 배열에서 불러와서 다음 칸에 저장해나가는 식으로 문제를 풀었다. 그런 다음 마지막으로 dp 배열을 보면서 해당하는 원소가 몇개인지 세어주었다.

2023년 7월 21일
·
0개의 댓글
·
post-thumbnail

Daily LeetCode Challenge - 735. Asteroid Collision

Problem From. https://leetcode.com/problems/asteroid-collision/ 오늘 문제는 asteroids 배열이 주어질때, 주어진 조건에 따라 원소들이 폭발을 일으켜서 없어지는지 아닌지 구하는 문제였다. 이 문제는 stack 을 이용해서 풀 수 있었는데, 먼저 모든 원소를 스택에 넣어두고, 앞에서부터 하나씩 빼오면서 각각의 원소가 충돌이 되느지 안되는지를 구하면서 문제를 풀면 되었다.

2023년 7월 20일
·
1개의 댓글
·
post-thumbnail

Daily LeetCode Challenge - 435. Non-overlapping Intervals

Problem From. https://leetcode.com/problems/non-overlapping-intervals/ 오늘 문제는 주어진 intervals 에서 범위가 겹치지 않게 하기 위해서 제거해야할 원소의 갯수를 반환하는 문제였다. 이 문제는 먼저 intervals 의 원소들을 첫번째 원소를 기준으로 오름차순으로 나열한뒤에, 처음부터 검사해나가면서, 범위가 겹치는 원소들이 몇개 있는지 세어서 cnt 를 반환해주면 되었다.

2023년 7월 19일
·
0개의 댓글
·
post-thumbnail

Daily LeetCode Challenge - 146. LRU Cache

Problem From. https://leetcode.com/problems/lru-cache/ 오늘 문제는 주어진 조건에 따라 LRUCache 를 구현하는 문제였다. 이 문제는 LinkedHashMap 을 이용해서 간단하게 풀 수 있었는데, 주어진 조건에 맞게 map 에 원소가 있으면 반환해주고 없으면 -1 을 반환해주는 함수를 작성해주면 되었다.

2023년 7월 18일
·
1개의 댓글
·
post-thumbnail

Daily LeetCode Challenge - 445. Add Two Numbers II

Problem From. https://leetcode.com/problems/add-two-numbers-ii/ 오늘 문제는 두개의 리스트 노드가 주어졌을때, 각 노드를 하나의 수로 생각하고 그 두 수를 더했을때의 결과를 다시 리스트 노드로 반환하는 문제였다. 이 문제는 두개의 스택을 이용해서 풀 수 있었는데, 먼저 각각의 리스트 노드를 각각의 스택에 넣어둔 후, 각 스택을 돌면서 하나씩 숫자를 꺼내서 덧셈을 한뒤, 10을 넘어가면 올림을 해주는 방식으로 문제를 풀 수 있었다.

2023년 7월 17일
·
2개의 댓글
·
post-thumbnail

Daily LeetCode Challenge - 207. Course Schedule

Problem From. https://leetcode.com/problems/course-schedule/ 오늘 문제는 prerequisites 배열이 주어졌을때, 규칙에 따라 모든 수업을 들을 수 있으면 true 아니면 false 를 반환하는 문제였다. 규칙은 배열의 원소들 중에서 첫번째 원소를 들으려면 두번째 원소를 먼저 들어야한다는 규칙이었다. 이 문제는 dfs 를 통해서 풀 수 있었는데, 먼저 prerequiets 배열을 탐색하며 map 형식으로 각각의 수업을 듣기 위한 prerequisites 를 짝지어서 정리해둔다. 그런 다음 dfs 를 통해서 map 을 탐색하면서 모든 수업을 들을 수 있는지 검사해주면 되었다.

2023년 7월 13일
·
0개의 댓글
·
post-thumbnail

Daily LeetCode Challenge - 863. All Nodes Distance K in Binary Tree

Problem From. https://leetcode.com/problems/all-nodes-distance-k-in-binary-tree/ 오늘 문제는 target node 로 부터 주어진 거리 내에 있는 모든 원소를 찾아서 반환하는 문제였다. 이 문제는 BFS 로 풀 수 있었는데, 먼저 서로 tree 를 graph 형식으로 바꾸어서 서로 연결되어 있는 상황을 나타내준다. 그런 다음 각각의 연결된 관계를 따라서 target node 를 찾은 다음 BFS 를 통해서 인접한 노드를 arrayList 에 넣어서 반환해주면 되었다.

2023년 7월 11일
·
0개의 댓글
·
post-thumbnail

Daily LeetCode Challenge - 118. Pascal's Triangle

Problem From. https://leetcode.com/problems/pascals-triangle/ 오늘 문제는 파스칼의 삼각형의 줄 수가 주어졌을때, 파스칼의 삼각형을 구성하는 원소를 반환하는 문제였다. 이 문제는 단순하게 풀 수 있었는데, 먼저 첫번째 줄을 만들어두고, 그 다음 줄 수 -1 만큼 그 전의 줄의 원소를 더해서 새로운 줄을 만들어서 붙여주는 작업을 반복하여 풀 수 있었다.

2023년 7월 9일
·
0개의 댓글
·
post-thumbnail

Daily LeetCode Challenge - 136. Single Number

Problem From. https://leetcode.com/problems/single-number/ 오늘 문제는 주어진 nums 배열에서 한번만 나온 숫자를 걸러내는 문제였다. 이 문제는 linear time 에 constant space 를 가지고 풀어야하는 조건이 있었는데, bit manipulation 을 통해서 풀 수 있었다. 같은 숫자가 나오지 않으면 0 이 되지 않는 비트 연산 xor 의 특성을 통해서 리스트를 처음부터 끝까지 보면서 0이 되지 않고 남아있는 수를 반환해주면 되었다.

2023년 7월 8일
·
0개의 댓글
·
post-thumbnail

Daily LeetCode Challenge - 1493. Longest Subarray of 1's After Deleting One Element

Problem From. https://leetcode.com/problems/longest-subarray-of-1s-after-deleting-one-element/ 오늘 문제는 주어진 nums array 에서 하나의 원소만을 뺄 수 있다고 하였을때, 1로만 이루어진 가장 긴 subarray 의 길이를 구하는 문제였다. 이 문제는 sliding window 를 이용하여 풀 수 있었는데, 먼저 지워진 원소의 갯수를 의미하는 delete 를 놔두고, 그 delete 가 1 보다 커질때까지 end 를 늘린다, 그런 뒤에 end 에서 start 를 빼서 길이를 구하고, 위의 과정을 start 를 하나씩 늘려가면서 반복해나가면 된다.

2023년 7월 5일
·
0개의 댓글
·
post-thumbnail

Daily LeetCode Challenge - 137. Single Number II

Problem From. https://leetcode.com/problems/single-number-ii/ 오늘 문제는 주어진 array nums 에서 나오는 각각의 숫자는 1번만 나오거나 3번만 나오게 되어있다. 이 중에서 1번만 나오는 숫자를 반환하는 문제였다. 이 문제는 bit manipulation 을 이용하여 풀 수 있었는데, once 와 twice 라는 변수를 두고, 한번만 나온 비트는 once 에 두번 이상 나오면 twice 에 마스킹을 해두고 세번째에 나오면 twice 가 사라질 수 있도록 하였다. 그렇게 해서 마지막에 남은 once 를 반환해주면 되었다.

2023년 7월 4일
·
0개의 댓글
·
post-thumbnail

Daily LeetCode Challenge - 859. Buddy Strings

Problem From. https://leetcode.com/problems/buddy-strings/ 오늘 문제는 문자 s 에서 두 문자의 순서를 바꾸어서 goal 을 만들 수 있는지 보는 문제였다. 먼저 s 와 goal 을 비교하며, 서로 다른 문자를 묶어낸다. 그리고 만약 다른 문자가 없다면 두개만 순서를 바꿔서 같은 문자가 되는지 확인하고, 만약 다른 문자의 크기가 2가 아니라면 false 를 반환한다. 마지막으로 첫번째에 나온 다른 문자와 두번째에 나온 다른 문자가 같다면 true 를 반환해준다.

2023년 7월 3일
·
0개의 댓글
·
post-thumbnail

Daily LeetCode Challenge - 1979. Find Greatest Common Divisor of Array

Problem From. https://leetcode.com/problems/find-greatest-common-divisor-of-array/ 오늘 문제는 nums array 가 주어질때, 그 안에서 가장 작은 수와 가장 큰 수의 gcd 를 찾는 문제였다. 먼저 array 에서 최소값과 최대값을 찾은 다음에, 최소값에서 1씩 빼가면서 두 숫자가 모두 나누어 떨어지는지 검사하는 방법으로 문제를 해결하였다.

2023년 6월 29일
·
0개의 댓글
·
post-thumbnail

Daily LeetCode Challenge - 1514. Path with Maximum Probability

Problem From. https://leetcode.com/problems/path-with-maximum-probability/ 오늘 문제는 graph 가 주어졌을때, 각 graph 에서 간선의 값이 probability 라고 할때, start 에서 end 까지 가는 수 중에 가장 확률이 큰 경우를 구하는 문제였다. 가장 확률이 큰 수를 찾는 문제이므로, 먼저 priority queue 를 이용하여, probability 를 기준으로 내림차순으로 원소가 정렬될 수 있도록 queue 를 구현하였다. 그런 다음 노드의 번호와, probability 를 페어로 묶어서, queue 넣어주었다. 마지막으로 queue 에서 start 부터 시작하여, probability 를 계산해주었는데, priority queu

2023년 6월 28일
·
0개의 댓글
·
post-thumbnail

Daily LeetCode Challenge - 373. Find K Pairs with Smallest Sums

Problem From. https://leetcode.com/problems/find-k-pairs-with-smallest-sums/ 오늘 문제는 nums1 과 nums2 가 주어질때, 각각의 원소들을 더해서 작은 값이 되는 수들을 짝지어서 k 개수만큼 반환하는 문제였다. 이 문제는 priority queue 를 이용해서 풀 수 있었는데, priority queue 에 각각의 원소의 합들을 인덱스를 하나씩 추가해주면서 넣어주고, 다시 queue 가 빌때까지 꺼내오면서 list 에 추가해주면 되었다. priority queue 가 각 queue 의 값들을 오름차순으로 가지고 있기때문에, queue 에서 꺼내와서 반환해주면 되었다.

2023년 6월 27일
·
0개의 댓글
·
post-thumbnail

Daily LeetCode Challenge - 2462. Total Cost to Hire K Workers

Problem From. https://leetcode.com/problems/total-cost-to-hire-k-workers/ 오늘 문제는 costs 배열이 주어지고, 후보자의 수인 candidates 가 주어질때, k 만큼의 일꾼을 뽑아서 임금이 가장 적게 드는 경우를 구하는 문제였다. candidates 는 costs 배열에서 앞에서 candidates 만큼, 뒤에서 candidates 만큼의 사람을 봐서 그 중의 최솟값을 반환하는데 쓰인다. 이 문제는 priority queue 두개를 사용하여 풀 수 있었는데, 먼저 왼쪽에서부터 원소를 넣는 priority queue 를 만들고, 그 다음 오른쪽에서부터 원소를 넣는 priority queue 를 하나 더 만들어서, 두 원소가 겹치지않게 넣어준다. 그

2023년 6월 26일
·
0개의 댓글
·
post-thumbnail

Daily LeetCode Challenge - 1027. Longest Arithmetic Subsequence

Problem From. https://leetcode.com/problems/longest-arithmetic-subsequence/ 오늘 문제는 array nums 가 주어졌을때, 그 안에서 가장 길이가 긴 등차수열을 찾는 문제였다. 이 문제는 DP 를 사용하여 풀 수 있었는데, 각각의 경우마다 다음 원소를 검사해나가면서 그 차이를 계속 저장해주면 되었다. 먼저 각각의 인덱스와 각 숫자의 차이를 저장해둘 배열을 만들어주고, 그 안에 hashMap 을 만들어둔다. 그리고 nums 에서 각각의 원소를 검사해나가면서 hashMap 에 조건에 맞는 원소를 추가해주고, 마지막에 map 의 길이를 통해서 비교하여 가장 긴 길이를 찾아주면 되었다.

2023년 6월 23일
·
0개의 댓글
·
post-thumbnail

Daily LeetCode Challenge - 714. Best Time to Buy and Sell Stock with Transaction Fee

Problem From. https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/ 오늘 문제는 prices 배열이 주어지고, 각각의 주식을 팔때 발생하는 수수료 fee 가 주어졌을때, 최대의 이익을 반환하는 문제였다. 이 문제는 DP 를 이용해서 풀 수 있었는데, 각각의 날짜에, 주식을 구매한 상태일때와 하지 않은 상태일때를 구분해서 생각해야했다. 이미 구매한 상태라면, 그 다음에 취할 수 있는 행동이 가만히 있는다와 판다 두가지이고, 구매하지 않은 상태라면 다음 행동이 가만히 있는다와 산다 두가지밖에 없다. 그러므로 각각의 날짜에, 각각의 행동에 따른 최대값을 계속 가지고가다가, 마지막에는 결국 파는게 최대 이익을

2023년 6월 22일
·
0개의 댓글
·