문제 요약알고리즘 분류: Two Pointer난이도: Medium문제내용:difficulty, profit, worker 있다.dificulty[i]는 난이도이고 profit[i]는 diffculty[i]수행시 보상이다.worker는 일하는 사람 최대 할수 있는 난이도를 나타내고 diffculty 이하만 수행 할수 있다.worker들이 최대 보상 받을수 있는 합친 값을 나타 내어라사이트 주소: https://leetcode.com/problems/most-profit-assigning-work/description/문제풀이 이번 문제는 브루드포스 같은 모든 경우의 수로 풀면 시간 초과가 난다. 그래서 최적의 시간 복잡도를 돌려야 하는 투포인트 문제이다. 투 포인터 대한 설명은 아래글에 참고하여라https..
문제 요약알고리즘 분류: Array, 구현난이도: Medium문제내용:nums 배열/리스트를 준다.nums에 아래조건하에 2차원 리스트로 변경한것을 반환 해야한다..각 리스트에 중복된 숫자가 없어야 한다.사이트 주소: https://leetcode.com/problems/convert-an-array-into-a-2d-array-with-conditions/description/문제풀이 이번 문제는 간단한 구현문제이다. 구현은 아래와 같이 하면된다.2차원 리스트를 선언한다.각 리스트 1행부터 탐색해서 num이 있는지 확인한다.없으면 없는 행에 추가한다.리스트 각 행마다 탐색했는데 다 있으면 새로 행을 추가해서 num을 담는다.이렇게 구현하면 시간 복잡도는 nums 개수 탐색하는것과 리스트 포함하는지 확인..
문제 요약알고리즘 분류: Greedy난이도: Medium문제내용:tops, bottoms 같은 길이 주사위 배열을 준다.tops[i], bottoms[i] 같은 index위치끼리 바꿀수 있다.top과 bottom을 바꾸면서 top이나 bottom중에서 같은 주사위 숫자가 같게 만들수 있을때 최소 몇번 바꾸면되는지 반환 하여라 만약 안될 경우 -1로 반환 하여라사이트 주소: https://leetcode.com/problems/minimum-domino-rotations-for-equal-row/description/문제풀이모든 경우의 수로 답은 나오지 브루드포스로 풀경우에는 시간 초과가 나올것이다. 그래서 이번문제는 그리디로 풀어야 한다. 그리디 관련 설명은 아래글을 확인 해보면된다.https://ji..
문제 요약알고리즘 분류: Hash, Ascill Code, 문자열난이도: Medium문제내용:a-z 를 0-25까지 표현한다.(ex. a = 0, b = 1, c = 3 ...... ,z = 25)문제에서 문자열 s, k정수를 준다.문자열 s에서 k만큼 자르고 자른 문자열에서 각 알파벳을 숫자로 변환하고 합친다.합친것을 숫자에서 알파벳으로 변한다. 넘어가면 26나머지 값을 알파벳을 변환한다.자른 문자열에서 처리한 것들을 합친것을 반한하여라사이트 주소: https://leetcode.com/problems/hash-divided-string/description/문제풀이 이번 문제는 문자열을 각 문자형으로 변환후 Ascill Code로 처리하는 문제이다. 문자형 Ascill Code로 변환해서 처리하는 문..
문제 요약알고리즘 분류: LinkedList, 구현난이도: Medium문제내용:0 사이에 값을 합쳐서 하나의 노드로 표현해라.사이트 주소:https://leetcode.com/problems/merge-nodes-in-between-zeros/description/문제풀이 이번 문제는 링크드리스트 노드 클래스나 구조체를 활용하는 문제이다. 노드클래스에 대한 이해도만 있으면 문제 푸는데는 어렵지 않다. 일단 아래그림처럼 처음에 나온 링크드 리스트에서 0사이 값을 합쳐서 다시 링크드리스트를 만들기만 된다. 그림을 보면 어떻게 구현 해야 할지 보일것이다. 그럼 구현은 아래처럼 하면된다.노드 새로 인스턴스 한다.다음노드가 끝있을때까지 반복문을 돌린다.현재 노드가 0이 아니면 인스턴스한 노드에 값을 더하고 다음 ..
문제 요약알고리즘 분류: 동적계획법(DP)난이도: Medium문제내용:1 ~ 365여행가는 날들 days 변수와 1, 7, 30일 기준 이용료 costs를 준다.days 날짜대로 여행 간다고 했을때 최소 비용 구하여라사이트 주소: https://leetcode.com/problems/minimum-cost-for-tickets/description/문제풀이 이번 문제는 동적계획법(DP)으로 풀어야 통과되는 문제이다. DP에 관한 성명은 아래 글에서 확인 해보면된다.https://jih3508.tistory.com/89 [알고리즘 이론] 동적계획법(Dynamic Programming, DP)이론 이번에 볼 알고리즘은 동적계획법(Dynamic Programming)이다. 이 알고리즘은 줄어서 dp라고 많이..
문제 요약알고리즘 분류: Tree, BFS, BST난이도: Medium문제내용:원래 BST의 모든 키가 자신보다 큰 키들의 합과 원래 키를 더한 값으로 변경되도록 하세요.사이트 주소: https://leetcode.com/problems/binary-search-tree-to-greater-sum-tree/description/ 문제풀이문제의 트리 구조는 아래와 같다. 노드의 왼쪽 서브트리는 노드의 키보다 작은 키를 가진 노드들로만 이루어져 있어야 합니다.노드의 오른쪽 서브트리는 노드의 키보다 큰 키를 가진 노드들로만 이루어져 있어야 합니다.왼쪽 및 오른쪽 서브트리 또한 이진 탐색 트리여야 합니다.이번 문제에서는 트리의 탐색하면서 더하는 식으로 진행 하면된다.트리와 DFS 관한 내용은 아래 글에서 확인 ..
문제 요약알고리즘 분류:동적계획법(DP)난이도: Medium문제내용:나이트는 체스의 이동처럼 같다나이트는 체스판이 아닌 계산기에서 이동한다.(단 *, # 이동 불가능이다.)0~9에서 아무대나 시작한다고 했을때 이동횟수가 n을 주어 졌을때 나올수 있는 경우의 수를 반환 하여라.사이트 주소: https://leetcode.com/problems/knight-dialer/description/문제풀이 이번 문제는 나이트 이동때문에 백트레킹이라고 볼수 있지만 n이 5000인점을 보면 백트레킹으로 풀면 시간 초과로인하여 완전 탐색같은 알고리즘으로는 하기는 그렇다. 그래서 최적화 할 수 있는 동적 계획법을 해야 한다. 동적계획법에 대한 설명은 아래글에서 확인해보면 된다.https://jih3508.tistory...
- Total
- Today
- Yesterday
- 그리디
- 그래프
- 이론
- DP
- 누적합
- DFS
- 동적계획법
- java
- 자바
- 수학
- BaekJoon
- 넓이 우선 탐색
- Greedy
- 동적 계획법
- level2
- 배열
- 조합
- spring-boot
- 문자열
- 알고리즘
- Python
- 파이썬
- JSCODE
- 백트레킹
- 재귀호출
- LeetCode
- 구현
- BFS
- 백준
- Programmerse
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |