본문 바로가기

알고리즘 테스트3

Best Time to Buy and Sell Stock 이번 포스트에서는 Best Time to Buy and Sell Stock 대표 문제를 풀어보겠습니다. 이 시리즈 문제는 Stock을 사고 팔아서 최대 이익을 내는 문제로 다양한 조건이 들어가면서 난이도가 달라집니다. 전반적으로 Sliding Window, Dynamic Programming 기법을 사용하여 풀 수 있습니다. 코딩 테스트 시에 연계해서 나오기 좋은 문제이므로 알아두면 좋습니다. Stock 문제의 가장 기본적인 원리는 팔기 전에 반드시 구매해야 한다는 점입니다. 따라서 Stock을 현재 가지고 있지 않다면 아무리 값이 올라도 판매할 수 없습니다. 또한 거래라고 하면 사고 파는 것이 한 사이클 완료된 경우를 의미합니다. 저는 stock을 사는 경우 거래를 시작한다고 생각하고 문제를 풀었습니다.. 2022. 11. 1.
Sliding Window 대표 문제 풀기 이번 포스트에서는 Sliding Window와 관련된 문제를 풀어보겠습니다. 풀이는 코드에 직접 적었습니다. 혹시나 궁금하신 부분이 있으시면 댓글로 문의 부탁드립니다. 1. Best Time to Buy and Sell Stock Best Time to Buy and Sell Stock - 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 풀이 class Solution { public: int maxProfit(vector& prices) { // 이전에 나온 최.. 2022. 10. 31.
[정렬] Merge Sort 개념 정리 및 관련 문제 풀기 이번 포스트에서는 Merge Sort에 대한 개념에 대해 알아보기 관련 문제를 풀어보겠습니다. 개념 정리 Merge Sort는 번역하면 병합 정렬이라고 합니다. Merge Sort는 대표적인 Divide & Conquer 알고리즘입니다. 즉 분할을 해서 작은 사이즈를 먼저 해결하고 나서 합치는 것을 의미합니다. 이 전략이 좋은 이유는 처음부터 많은 양의 비교를 하지 않고 작은 단위부터 정렬된 배열들을 만들어서 합칠때 두 정렬된 배열을 비교하면 되기 때문입니다. 정렬된 배열을 비교하는 것은 일반적인 정렬보다 간단합니다. 왜냐하면 각 배열이 이미 정렬되어 있기 때문에 가장 앞에 있는 것들만 비교하면 됩니다. 예를 들어서 배열 [1, 3, 5, 7] 과 [2, 4, 6, 8] 을 정렬한다고 가정하겠습니다. 두.. 2022. 10. 26.