본문 바로가기

Algorithm/LeetCode14

[LeetCode] 283. Move Zeroes (Swift) Move Zeroes - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 풀이 입력으로 주어진 nums 배열의 길이만큼만 반복하며 배열의 원소가 0인지를 비교하면 된다. 현재 인덱스의 원소가 0이면 현재 위치의 0을 제거하고 뒤에 append 해준다. 이때 뒤에 있던 숫자들은 앞으로 한 칸씩 당겨지므로 인덱스의 값을 증가시킬 필요는 없다. 현재 인덱스의 원소가 0이 아닐 경우에는 인덱스를 증가시켜 다음 숫자에 대해서 판단하도록 한다. 코드 class Solutio.. 2022. 8. 10.
[LeetCode] 611. Valid Triangle Number (Swift, Python) Valid Triangle Number - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 풀이 먼저 삼각형을 만들기 위해서는 가장 긴 변의 길이가 나머지 두 변의 합보다 작아야 한다. 즉, 가장 긴 변을 c라고 하고 나머지 변들을 a, b라고 한다면 a + b > c를 만족해야만 삼각형을 만들 수 있는 것이다. 입력으로 주어진 nums를 오름차순으로 정렬해주고 for문으로 배열의 인덱스 2부터 끝까지 진행한다. for문에서 선택되는 변은 c에 해당하고 나머지 두.. 2022. 1. 11.
[LeetCode] 1262. Greatest Sum Divisible by Three (Swift, Python) Greatest Sum Divisible by Three - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 풀이 sums라는 원소 3개를 가진 배열을 하나 만들어서 사용하였다. 각각의 원소는 3으로 나눴을 때 나오는 나머지의 최대 합계를 나타낸다. 즉, sums[0]에는 3으로 나누어 떨어지는 숫자의 합 중 최댓값이 들어있다. 입력으로 주어진 nums 배열을 순차적으로 탐색해가며 더해주는데, 이때 각각의 sums 원소에 현재 숫자를 더해준다. 그러면 총 3개의 .. 2022. 1. 10.
[LeetCode] 846. Hand of Straights (Swift, Python) Hand of Straights - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 풀이 먼저 입력으로 주어진 hand를 오름차순으로 정렬한다. 정렬된 hand에서 가장 앞에 있는(가장 작은) 카드를 손에 들고 현재 손에 있는 수에서 groupSize까지의 카드가 현재 배열에 존재하는지 체크한다. 예제에서는 처음에 손에 카드 1을 들고 2와 3이 있는지 체크한다. 2가 있다면 카운트를 하고 hand 배열에서 2를 제거한다. 다음으로 3이 있다면 카운트를 하고 ha.. 2022. 1. 9.
[LeetCode] 1663. Smallest String With A Given Numeric Value (Swift, Python) Smallest String With A Given Numeric Value - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 풀이 앞에서부터 차례대로 문자열을 만들어나간다. 사전순으로 가장 앞에 있는 문자열을 구하기 위해서는 앞의 자리에 최대한 a에 가까운 문자로 만들어야한다. 현재 채워야 하는 자리 이후에 가장 큰 z를 채운다고 가정했을 때 k를 만족할 수 있는지를 따져보면 된다. 예제의 n = 5, k = 73을 생각해보자. 현재 채워야하는 첫 번째 자리를.. 2022. 1. 6.
[LeetCode] 436. Find Right Interval (Swift, Python) Find Right Interval - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 풀이 start 배열에 입력으로 주어지는 intervals 배열의 [i번의 start, i]와 같은 형태로 값을 담아주고 i번의 start를 기준으로 start 배열을 정렬한다. 그 후 intervals를 돌면서 end 값에 대해서 문제에 주어진 조건대로 start를 찾아주는 이분 탐색을 진행했다. 코드 [Swift] typealias startElement = (start: .. 2021. 12. 17.