목록전체 글 (709)
N
https://leetcode.com/problems/flatten-a-multilevel-doubly-linked-list/ Flatten a Multilevel Doubly Linked List - 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 주어진 양방향 리스트를 평탄화를 하여 리턴해야 한다. 우선 예외처리로 head가 비어있다면 그대로 비어있는 head를 리턴한다. 그렇지 않다면 DFS로 모든 노드를 배열에 담아주도록 한다. 담는 순서는 현재 방문한 노..
https://leetcode.com/problems/merge-nodes-in-between-zeros/ 주어진 연결 리스트에서 0으로 된 노드 사이의 값을 더하여 새로운 연결 리스트로 반환하면 된다. 우선 answer를 new ListNode()로 선언한다. 그리고 head 내부에 있는 값을 배열에 저장하기 위해 arr 배열을 선언. 0 노드 사이의 값을 더하기 위한 sum과 포인터인 current를 선언한다. current는 head를 가리켜 arr에 값을 저장하도록 한다. while문으로 head를 한 번 순회한다. current !== null 때 까지 반복. 순회를 할 때에는 노드의 값을 더하여 arr에 저장한다. 0이 아닌 수는 sum에 더하고, 만약 노드에서 0을 만나게 되고 sum이 0이..
https://leetcode.com/problems/last-stone-weight/ Last Stone Weight - 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 오름차순 정렬을 이용. stones의 길이가 1일때까지 반복. stones를 오름차순으로 정렬한 후, 가장 뒤에 있는 두 개의 수를 각각 y, x에 저장한다. 만약 두 수가 같지 않다면 y - x 를 stones에 넣어주면 된다. 리턴값은 stones의 길이를 판단하여, 비어있다면 0, 그렇지 ..
https://leetcode.com/problems/find-first-and-last-position-of-element-in-sorted-array/ Find First and Last Position of Element in Sorted Array - 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 이진 탐색 알고리즘 활용. 주어진 nums에서 target을 찾고, 해당 인덱스의 처음과 끝을 answer에 저장하면 된다. 만약 nums가 비어있다면 바로 리..
https://leetcode.com/problems/swapping-nodes-in-a-linked-list/ Swapping Nodes in a Linked List - 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 연결 리스트. 앞에서 k번째에 있는 노드와 뒤에서 k 번째에 있는 노드를 서로 바꿔주면 된다. array를 이용하여 문제 해결. arr 배열 안에 head에 있는 노드를 모두 넣어준다. 이후 p1 = k - 1, p2 = arr.length - ..
https://programmers.co.kr/learn/courses/30/lessons/86052 코딩테스트 연습 - 빛의 경로 사이클 각 칸마다 S, L, 또는 R가 써져 있는 격자가 있습니다. 당신은 이 격자에서 빛을 쏘고자 합니다. 이 격자의 각 칸에는 다음과 같은 특이한 성질이 있습니다. 빛이 "S"가 써진 칸에 도달한 경우, 직진 programmers.co.kr BFS 알고리즘. 처음 풀 때는 DFS를 사용했지만, 런타임 에러 즉, 콜스택이 초과되기 때문에 BFS를 사용해야 한다. 각 좌표마다 시작하는 방향에 따라 사이클의 여부가 달라지기 때문에, 3차원 배열을 이용해 visited를 처리했다. 우선 이중 for문으로 grid를 순회한다. 순회를 하면서 각 좌표마다 4방향으로 탐색을 진행한다..
https://programmers.co.kr/learn/courses/30/lessons/68936 코딩테스트 연습 - 쿼드압축 후 개수 세기 [[1,1,0,0],[1,0,0,0],[1,0,0,1],[1,1,1,1]] [4,9] [[1,1,1,1,1,1,1,1],[0,1,1,1,1,1,1,1],[0,0,0,0,1,1,1,1],[0,1,0,0,1,1,1,1],[0,0,0,0,0,0,1,1],[0,0,0,0,0,0,0,1],[0,0,0,0,1,0,0,1],[0,0,0,0,1,1,1,1]] [10,15] programmers.co.kr 분할 정복 알고리즘 적용. check 함수를 이용해 분할을 할지 결정한다. check의 시작은 출발좌표인 0, 0과 arr의 길이를 넘겨주도록 한다. check 함수. 분할 ..
https://leetcode.com/problems/path-with-maximum-probability/ Path with Maximum Probability - 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 다익스트라 알고리즘. start에서 end까지 갈 수 있는 확률 중 가장 높은 path를 찾아야 한다. 일반적인 다익스트라처럼 큐를 이용. 우선 n 크기의 배열을 선언하고, 빈 배열로 초기화 하여 graph라는 이름으로 선언. 각 지점까지의 거리를 나타..