Python 51

[Python] 리트코드 : 402. Remove K Digits

https://leetcode.com/problems/remove-k-digits/submissions/ Remove K Digits - 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 num에서 주어진 k횟수만큼 숫자를 하나씩 삭제해서 가장 작은 숫자가 나오도록 하는 문제이다. 만약 num=1726, k=2라면 숫자 두 개를 지워서 나올 수 있는 가장 작은 숫자 12를 반환하면 된다. 만약 숫자를 단 하나만 지워서 가장 작은 숫자를 만들고 싶다면 숫자를 왼쪽부터..

알고리즘 2021.08.27

[Python] 리트코드 1529. Bulb Switcher IV (Greedy)

https://leetcode.com/problems/bulb-switcher-iv/ Bulb Switcher IV - 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 방 안에 전구들이 모두 꺼진 상태이다. 이 전구들을 target상태와 똑같이 만드는 데에 몇 번 스위치를 눌러야 하는지 구하는 문제이다. i번째 전구를 선택하면 i~len(arr)까지의 전구의 상태가 반전된다. 만약 전구가 00111인 상태에서 두 번째 두 번째 전구를 선택했다면 두 번째~다섯 번째..

알고리즘 2021.08.25

[Python] 리트코드 950. Reveal Cards In Increasing Order (Sorting)

https://leetcode.com/problems/reveal-cards-in-increasing-order/submissions/ Reveal Cards In Increasing Order - 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 ==문제== 카드 덱이 배열로 주어질 때 다음과 같은 순서로 카드를 뒤집을 것이다. 1. 덱의 제일 위 카드를 뒤집는다. 2. 그다음 카드는 뒤집지 않고 제일 바닥에 끼워 넣는다. 3. 그다음은 1로 돌아가서 덱이 없어질..

알고리즘 2021.08.09

[Python] 리트코드 451. Sort Characters By Frequency (딕셔너리 정렬, 요소 길이별 정렬)

https://leetcode.com/problems/sort-characters-by-frequency/ Sort Characters By Frequency - 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 ==문제== 알파벳 문자열이 주어졌을 때 정렬하는 문제이다. 첫 번째 정렬 조건은 반복되는 횟수가 많은 순서이고 두 번째 정렬 조건은 알파벳 순서대로 정렬하면 된다. ==풀이== 방법은 아주 간단하다. 딕셔너리에 (key:알파벳, value:반복 횟수)로 ..

알고리즘 2021.08.08

[Python] 리트코드 1340. Jump Game V (Sorting, DP)

https://leetcode.com/problems/jump-game-v/ Jump Game V - 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 ==문제== 막대기의 높이가 담긴 배열 arr과 한 번에 점프할 수 있는 막대기의 최대 숫자 d가 주어질 때, 가장 많이 건너뛸 수 있는 횟수를 구하는 문제이다. ==접근방법== arr요소의 인덱스를 차례로 dp함수로 보내서 각 막대기 별로 이동할 수 있는 최대 횟수를 구한다. dp함수에서는 제일 먼저 idx가 딕셔..

알고리즘 2021.08.08

[Python] 리트코드 560. Subarray Sum Equals K (딕셔너리 키에 해당하는 값 없으면)

https://leetcode.com/problems/subarray-sum-equals-k/ Subarray Sum Equals K - 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배열에서 더해서 k가 되는 부분 배열의 가짓수를 구하는 문제이다. ==풀이== 누적합계인 sums를 선언해서 합계에 어떤 숫자가 더해질 때마다 sums-k 값을 구한다. 이 값이 이 전에 구했던 sums의 이력 중 어떤 것이라도 일치하는 게 있다면 부분 배열 개..

알고리즘 2021.07.21

[Python] 리트코드 1048. Longest String Chain (요소의 길이로 정렬)

https://leetcode.com/problems/longest-string-chain/ Longest String Chain - 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 ==문제== 소문자로 구성된 words 배열을 받는다. 알파벳이 하나씩 추가되어 'a' 'ab' 'dab' 같은 식으로 이어질 때 이것을 word chain이라고 부른다. words배열 안에서 가장 길게 연결할 수 있는 word chain 개수를 구하라. ==처음 코드== 각 단어의 ..

알고리즘 2021.07.19

[Python] 리트코드 39. Combination Sum (Array)

https://leetcode.com/problems/combination-sum/ Combination Sum - 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 ==문제== candidates로 후보 숫자들이 주어지고 target 숫자가 주어진다. candidates에서 target숫자를 만들 수 있는 조합을 구하는 문제이다. ==설명== 후보 숫자를 선택하면 만들어야 하는 목표 숫자에서 그 수를 빼준다. 남은 숫자가 0보다 크다면 아직 타깃에 도달하지 못한 ..

알고리즘 2021.07.12

[Python] 리트코드 1002 : Find Common Characters (String)

https://leetcode.com/problems/find-common-characters/ Find Common Characters - 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 ==문제== 문자열이 담긴 배열이 주어졌을 때 그 배열의 모든 문자열에 포함된 단어를 반환해야 한다. ==설명== 기준이 될 단어를 하나 정하고 그 기준 단어 속의 알파벳들이 나머지 단어들에 포함되어있나 확인한다. 그런데 만약 기준 단어가 cook이라면 알파벳 o가 두 개이기 ..

알고리즘 2021.07.11

[Python] 리트코드 1106 : Parsing A Boolean Expression (String)

https://leetcode.com/problems/parsing-a-boolean-expression/ Parsing A Boolean Expression - 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 ==문제== "!(f)" 같은 형태로 문자열이 주어졌을 때 그 연산자에 따라 NOT, AND, OR 연산을 한 결과를 반환하면 된다. ==풀이== 먼저 NOT, AND, OR 연산을 할 함수를 각각 만든다. 그리고 함수에 어떤 값을 전달해줄지 정해야 하는데..

알고리즘 2021.07.10