문제 요약알고리즘 분류: Hash, list난이도: Medium문제내용:groupSizes라는 정수 배열이 주어지는데, 여기서 groupSizes[i]는 사람 i가 속한 그룹의 크기이다.그룹은 groupSize 크기 만큼 그룹에 속해야 한다.각 사람이 groupSizes[i]의 크기를 가진 그룹에 속하는 그룹의 목록을 반환해라사이트 주소: https://leetcode.com/problems/group-the-people-given-the-group-size-they-belong-to/description/문제풀이 이번 문제는 Hash와 리스트를 활용 하면되는 간단한 문제 이다. 구현은 아래와 같이 하면된다.결과에 담을 2차원 리스트와 Hash에 저장할 변수를 선언한다. Hash의 key-value는 ..
문제 요약알고리즘 분류: 수학난이도: Medium문제내용:숫자 n이 주어지면 2 ~ n-2 진법까지 변환한다.집법으로 변환 한 것에서 뒤집은 숫자와 다른 것 하나라도 있으면 false로 반환 한다. 사이트 주소: https://leetcode.com/problems/strictly-palindromic-number/description/문제풀이 이번 문제는 Palindromic Number 문제이다. 근데 여기서 진법으로 변환해서 뒤집은 숫자와 다른지 파악하면 된다.여기서 구현 해야 할것은 n진법 변환 작업이다. 자바는 n진법 변환 하는 함수 제공하는데 파이썬은 직접 구현 해야한다.파이썬 진법 구현은 아래와 같이 하면된다.# 진법 변환def baseN(num: int, base) -> int: p..
문제 요약알고리즘 분류: 수학난이도: Medium문제내용:pref이라는 리스트가 주어진다.pref[i] = arr[0] ^ arr[1] ^ arr[2] ...... ^ arr[i] 식처러 arr 0번째 인덱스 부터 i번째 xor연산된 값이다.xor 연산되기 전의 arr를 구하여라사이트 주소: https://leetcode.com/problems/find-the-original-array-of-prefix-xor/description/문제풀이 이번 문제는 xor의 법칙만 알면 쉽게 풀수 있는 문제이다.위 내용 보면 pref[i] = arr[0] ^ arr[1] ^ arr[2] ...... ^ arr[i]으로 되어 있으면 pref[0] = arr[0]으로 0번째 인덱스는 그대로 넣으면 된다. 그럼 첫번..
문제 요약 알고리즘 분류: DFS, 백트래킹, Tree, Hash 난이도: Medium 문제내용: 이진 트리에서 가장 깊은 노드 합을 구하여라 사이트 주소: https://leetcode.com/problems/deepest-leaves-sum/description/ 문제풀이 이번 문제는 아래 트리 자료구조 통해서 가장 깊은 노드의 합을 구하는 것이다. 트리, 깊이 우선 탐색, 백트레킹에 관한 개념은 아래 글에서 확인 해보면된다. 트리: https://jih3508.tistory.com/87 백트레킹: https://jih3508.tistory.com/84 깊이 우선 탐색(DFS): https://jih3508.tistory.com/94 Python class TreeNode: def __init__(s..
문제 요약 알고리즘 분류: DFS, 백트래킹 난이도: Medium 문제내용: n까지 숫자를 사전순으로 정렬 하여라. 사이트 주소: https://leetcode.com/problems/lexicographical-numbers/description/ 문제풀이 이번 문제는 숫자를 사전 순으로 정렬 하는것이다. 1, 2, 3 순이 아니라 1, 10, 100순으로 앞자리가 낮은 순으로 정렬 하는것이다. 이 문제는 깊이 우선 탐색, 백트레킹으로 해결하면된다. 깊이 우선 탐색, 백트레킹 자세한것은 아래 글에서 확인 해보면 된다. 백트레킹: https://jih3508.tistory.com/84 깊이 우선 탐색: https://jih3508.tistory.com/94 [알고리즘 이론] 깊이 우선 탐색(DFS) 이론..
문제 요약 알고리즘 분류: dp, 동적 계획법 난이도: Medium 문제내용: 정수 n이 주어지면 k개의 양의 정수의 합(k > = 2)으로 나누고 그 정수의 곱을 최대화한다. 사이트 주소: https://leetcode.com/problems/integer-break/description/ 문제풀이 이번 문제에는 모든 경우의 수를 구해서 풀기가 힘들다. 모든 경우의 수를 구하 O(N^N)개 이상으로 나올수 있다. 그래서 이번 문제는 DP로 풀어야 통과가 되는 문제이다. DP에 대한 자세한 설명은 아래글로 확인해보면 된다. https://jih3508.tistory.com/89 [알고리즘 이론] 동적계획법(Dynamic Programming, DP) 이론 이번에 볼 알고리즘은 동적계획법(Dynamic ..
문제 요약 알고리즘 분류: Hash, 자료구조, 링크드 리스트 난이도: Medium 문제내용: LRU Cache class 구현해라 LRUCache(int capacity) capacity은 용량 사이즈이다. get 메소드는 key가 있을경우 값을 출력하고 아닐경우 -1로 출력한다. put 메소드는 값을 집어 넣는다. 용량이 초과 할경우 최근 사용도 순으로 삭제한다. 사이트 주소: https://leetcode.com/problems/lru-cache/description/ LRU Cache - LeetCode Can you solve this real interview question? LRU Cache - Design a data structure that follows the constraints ..
문제 요약 알고리즘 분류: 브루트포스, 배열 난이도: easy 문제내용: nums 배열 2개 뽑아서 target 숫자 맞는 인덱스 위치를 반환 하여라. 사이트 주소: https://leetcode.com/problems/two-sum 문제풀이 이번 문제는 간단한 배열 탐색이다. 구현은 아래와 같은 방식으로 하면 된다. 1. 이중 반복문으로 한다. - 첫번째는 배열의 길이 만큼 한다. - 두번째는 탐색 위치 i+1부터 배열 길이 탐색한다. 2. 두개 배열 위치에서 합해서 target 값이 같으면 배열 위치 반환한다. Code Python class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: length = len(nums)..
- Total
- Today
- Yesterday
- LeetCode
- 조합
- 재귀호출
- Programmerse
- 알고리즘
- level2
- 이론
- 백트레킹
- 동적 계획법
- spring-boot
- 자바
- 누적합
- 동적계획법
- DFS
- 파이썬
- 수학
- DP
- 구현
- 힙
- 문자열
- BFS
- 넓이 우선 탐색
- 백준
- 그리디
- JSCODE
- 그래프
- Greedy
- Python
- java
- 배열
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |