일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Lesson2
- 부산입국
- 백준알고리즘
- Lesson3
- QA엔지니어
- 자바
- 프로그래머스
- 외래키설정
- FIDO 환불
- 리눅스
- 레노보노트북
- database연결
- FK 설정
- 캐나다워홀
- binaray_gap
- 벤쿠버렌트
- 파이도 환불
- Java
- 데이터의 무결성
- FLEX5
- codility
- IntelliJ
- 엔테크서비스
- 벤쿠버 렌트
- BC렌트
- 1463번
- 설탕문제
- Linux
- 벤쿠버집구하기
- 언마운트
- Today
- Total
대충이라도 하자
LeetCode April Challenge 2021 Longest Increasing Path in a Matrix 본문
LeetCode April Challenge 2021 Longest Increasing Path in a Matrix
Sueeeeee*** Time limit exceeded 나왔음.....
하지만 여기서도 주의해야 할 것은 max 값을 0으로 지정해놓으면 안되고
matrix.length랑 matirx[0].length값 제대로 지정했는지 확인해야 한다.
*** 같은 time limit exceeded 이지만 좀 더 코드가 깔끔한 거 같다.
dfs를 다르게 구성하는 방법
***결국 맨 처음 생각한 대로 dp + dfs로 생각해야 하는 문제이다.
A common approach to improve DFS is through memorization.
원래의 방법을 가지고는 도저히 dp랑 연관 짓기가 어려워 코드를 바꿨다.
하지만, loop 대신 condition조건문으로 바꿔서 사용하면 더 빨라질 듯하다.
무조건 다시 풀어봐야 할 문제이다.
*** 다음으로는, 우선순위 큐를 활용해서 푼 코드가 있었는데 굉장히 흥미로운 아이디어이고 활용도가 높은 거 같다.
우선순위 큐는 높은 우선 순위의 요소를 먼저 꺼내서 처리하는 구조이다.
add나 offer로 집어넣고 poll로 꺼낼 수 있다.
일반적으로 PriorityQueue<Integer> maxPQ = new PriorityQueue<>();
이런 식으로 선언하면 우선순위도가 높은 것부터 꺼낼 수 있다. 즉, 우선순위가 1인 것이 제일 먼저 나옴
하지만 아래처럼 new PriorityQueue<>((a,b) -> b[2] - a[2] );
라고 하면 우선순위가 마지막인 것부터 나온다.
이것에 관해서는 long integers는 overflow 문제로 new PriorityQueue<>((x, y) -> Integer.compare(y, x)) 라고 하는 것이 좋고,
나아가서는 new PriorityQueue<>(Collections.reverseOrder()); 이 더 좋다고 한다.
하지만!!!! 이 문제의 경우, 배열을 집어넣을 것이기 때문에 배열에서 무슨 요소를 기준으로 우선순위를 정할 것인지를 지정해줄 필요가 있다.
그렇기에 Collections.reverseOrder()이 아니라 아래의 방식이나 new PriorityQueue<>((x,y) -> Integer.compare(y[2], x[2]))가
적절하다.
'꼬꼬마 개발자 노트 > Leetcode Challenge' 카테고리의 다른 글
LeetCode April Challenge2021 (0) | 2021.06.23 |
---|---|
Leetcode April Challenge 2021 Deepest Leaves Sum (0) | 2021.06.23 |
Leetcode April Challenge 2021 Verifying an Alien Dictionary (0) | 2021.06.23 |
Leetcode April Challenge2021 Global and Local Inversions (0) | 2021.06.23 |
Leetcode April Challenge 2021 Minimum Operations to Make Array Equal (0) | 2021.06.23 |