Algorithm

Algorithm

[알고리즘] Interval Scheduling Algorithm

목적 - 주어진 시간 간격(인터벌)의 집합에서, 서로 겹치지 않는 최대 수의 인터벌을 선택하는 것 cf. 각 인터벌은 시작 시간과 종료 시간으로 정의된다 사용 - 효율적인 자원 배분과 일정 관리에 사용된다. - 서로 겹치지 않는 최대 수의 활동이나 작업을 스케줄링 하는데 유용하다. 예시 프로세스 및 자원 스케줄링 컴퓨터 시스템의 한정된 자원을 여러 프로세스들 사이에서 효율적을 분배 자원이 충돌 없이 사용되도록 하고 시스템 효율성을 최대화 회의실 또는 강의실 예약 시스템 한정된 공간을 여러 그룹이나 이벤트에 할당할 때 최대한 많은 이벤트를 수용할 수 있도록 항공편 스케줄링 제한된 게이트와 활주로를 가지고 최대한 많은 항공편을 운영할 수 있도록 def interval_scheduling(intervals :..

Algorithm/Python

[Python/LeetCode]Palindrome Number

오늘 오랜만에 아메리카노를 마셨더니 잠이 안들어서 어쩔 수 없이 일어났다. 알고리즘을 풀면 졸려질까 싶은 생각에 리트 코드를 열었는데, 오히려 더 쌩쌩해졌다. 1. 문제 Given an integer x, return true if x is palindrome integer. An integer is a palindrome when it reads the same backward as forward. For example, 121 is palindrome while 123 is not. 팰린드롬 수는 101, 121, 1221과 같이 뒤집어도 같은 수다. 처음에 문제를 보자마자 str로 변환하고, 뒤집은 값과 비교하면 되겠다고 생각했다. 그런데 문제의 예제를 끝까지 읽다보니 Follow up에 Follo..

Algorithm/Python

[Python/LeetCode]Roman to Integer

이제까지는 글을 내가 공부한 걸 정리한다는 느낌으로 썼다. 하지만 면접을 보면서 다른 사람에게 설명하는 것에 미숙하다고 생각하게 됐고, 앞으로는 읽는 사람이 이해할 수 있게 글을 써야겠다고 생각했다. 1. 문제 Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M. Symbol Value I 1 V 5 X 10 L 50 C 100 D 500 M 1000 For example, 2 is written as II in Roman numeral, just two one's added together. 12 is written as XII, which is simply X + II. The number 27 is wri..

Algorithm/Python

[파이썬/LeetCode 792]Number of Matching Subsequences

링크 https://leetcode.com/problems/number-of-matching-subsequences/ Number of Matching Subsequences - 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 문제 Given a string s and an array of strings words, return the number of words[i] that is a subsequence of s. A subsequence of a string..

Algorithm/CPP

[C++/LeetCode]주식을 사고 팔기 가장 좋은 시기 II

뭔가 이 문제를 풀어보니까 알고리즘을 푸는데 언어는 문제가 아닌거 같기도 하고... 일단 언어는 문제를 풀기 위한 도구일뿐이고 결국에 핵심 로직은 똑같으니까..🙄? class Solution { public: int maxProfit(vector& prices) { int profit = 0; for (int i = 1; i < prices.size(); i++){ profit += max(prices[i]-prices[i-1], 0); } return profit; } }; 한 번의 거래로 낼 수 있는 최대 이익을 찾는 문제인데 예를 들어서 [7, 1, 5, 3, 6, 4]인 경우, 1일 때 사서 6일 때 팔면 최대 이익을 산출 할 수 있다. 브루트 포스로 하면 c++은 런타임 에러가 나지 않을 수도 ..

Algorithm/CPP

[C++/LeetCode] 정렬된 배열(벡터)에서 중복 제거하기

C++에서 손을 떼고 Python만 한지 4년차... C++로 코딩테스트를 보게 됐다. 기본 문법만이라도 익숙해져보려고 하지만, 입출력에서 부터 오류가 나고 계속 틀린다😥.. 그래도 할 수 있는 한 계속해서 노력해보겠지만... 떨어지면 명백하게 내 실력 부족인거니까 미련을 갖진 않으려 한다.. 미련 갖고 후회 하기보단 계속 공부를 해야지.. 코딩 테스트에서 자주 나오는 문제를 풀되, 기본 문법에 익숙해져야 하니까 뭘 풀까 고민하다가 LeetCode Top Interview Questions 를 풀기로 했다. 첫번째 문제는 정렬된 배열에서 중복을 제거하는 문제였다. 파이썬으로 풀 때는 정말 보자마자 바로 풀었는데, C++로 풀어보니 레퍼런스도 참고하고 문법을 찾아보다가 한시간이 걸렸다.. class Sol..

박한결
'Algorithm' 태그의 글 목록