Python 51

[Python] 리트코드 309. Best Time to Buy and Sell Stock with Cooldown

https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/ Best Time to Buy and Sell Stock with Cooldown - 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 이 문제는 [121. Best Time to Buy and Sell Stock] 이랑 [122. Best Time to Buy and Sell Stock II] 의 다음 단계라고 할 수 있다. 이..

알고리즘 2021.10.27

[Python] 리트코드 1014. Best Sightseeing Pair

https://leetcode.com/problems/best-sightseeing-pair/ Best Sightseeing Pair - 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 values[i] + values[j] + i - j 를 계산했을 때 최댓값을 구하는 문제이다. values[i] + values[j] + i - j 값이 최대가 되려면 values[i] + i는 최대가 되어야 하고 values[j] - j도 최대가 되어야 한다. values의 임..

알고리즘 2021.10.26

[Python] 리트코드 1567. Maximum Length of Subarray With Positive Product (누적 곱셈)

https://leetcode.com/problems/maximum-length-of-subarray-with-positive-product/ Maximum Length of Subarray With Positive Product - 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 이 문제는 https://leetcode.com/problems/maximum-product-subarray/ 문제의 응용 버전이다. Maximum Product Subarray는 su..

알고리즘 2021.10.25

[Python] 리트코드 463. Island Perimeter

https://leetcode.com/problems/island-perimeter/ Island Perimeter - 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 grid = [[0,1,0,0], [1,1,1,0], [0,1,0,0], [1,1,0,0]] 그림처럼 1은 땅을 0은 물을 뜻한다. 이때 땅의 둘레를 구하는 문제 ==풀이== 1. 땅 두 칸이 붙어 있으면 겹치는 선이 한 개일 것이다. 2. 겹치는 것 생각하지 않고 각 네모의 둘레를 모두 구했을 때..

알고리즘 2021.10.19

[Python] 리트코드 1690. Stone Game VII

https://leetcode.com/problems/stone-game-vii/ Stone Game VII - 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 Alice와 Bob이 게임을 한다. 번갈아가며 첫 번째 혹은 마지막 돌무더기를 제거해서 남은 돌무더기 합계를 해당 턴의 점수로 가져간다. stones = [5,3,1,4,2]라면 Alice가 제일 오른쪽 2를 제거하고 5 + 3 + 1 + 4 = 13를 얻는다. 그다음 Bob은 stones = [5,3,1..

알고리즘 2021.10.18

[Python] 프로그래머스 문제: 타겟 넘버

https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr 처음부터 하나씩 더하고 빼는 경우의 수를 다 구하는 건 비효율적이란 생각이 들어서 반대로 생각해보았다. 숫자들을 전부 더한 다음 거기서 타겟이 되도록 빼는 것이다. 숫자들의 총합은 (타겟이 되기 위한 숫자들 + 잉여 숫자들)이기 때문에 잉여 숫자들의 조합 경우의 수를 구하는 게 답을 구하는 거나 마찬가지이다...

알고리즘 2021.10.01

[Python] 리트코드 514. Freedom Trail

https://leetcode.com/problems/freedom-trail/ Freedom Trail - 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 리스트 ring은 [0]번 요소가 12시 방향에 위치하고 뒤따르는 요소들이 시계방향으로 위치한 다이얼 모양 원이다. 선택해야 하는 알파벳인 key가 주어진다. ring을 시계방향 혹은 반시계 방향으로 돌리면서 key에 해당하는 알파벳을 순서대로 고를 건데 이때 다이얼을 가장 적게 돌리는 경우의 횟수를 구하라...

알고리즘 2021.09.15

[Python] 리트코드 403. Frog Jump (Array, DP)

https://leetcode.com/problems/frog-jump/ Frog Jump - 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 개구리가 강을 건너는데 그 강은 몇 개의 유닛으로 쪼개져 있다. 각 유닛엔 돌이 있을 수도 있고 없을 수도 있다. 오름차순 리스트인 stones가 주어질 때 개구리가 맨 끝까지 갈 수 있다면 true를 반환한다. 맨 처음에는 1칸을 뛸 수 있으며 개구리가 마지막에 k유닛을 점프했다면 다음에 점프할 수 있는 유닛의 간격은 k..

알고리즘 2021.09.10

[Python] 리트코드 216. Combination Sum III

https://leetcode.com/problems/combination-sum-iii/ Combination Sum III - 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~9까지의 숫자를 k개 사용해서 n이 되는 조합을 찾는 문제이다. 각 숫자는 한 번씩만 사용할 수 있고 모든 조합 경우의 수를 리턴하면 된다. 이 문제는 전에 풀었던 문제가 한단계 업그레이드 된 버전이다. ▼풀이 2021.07.12 - [알고리즘] - [Python] 리트코..

알고리즘 2021.09.02

[Python] 리트코드 807:Max Increase to Keep City Skyline (Greedy)

https://leetcode.com/problems/max-increase-to-keep-city-skyline/ Max Increase to Keep City Skyline - 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 도시의 skyline은 동서남북 각각의 방향에서 본 건물 외곽선이다. 이 skyline을 해치지 않는 선에서 건물 높이를 가능한 최대로 높인다고 할 때 추가할 수 있는 높이를 구하는 문제이다. 문제에서 제시한 예시를 살펴보자. grid =..

알고리즘 2021.08.27