오늘 문제부터 보시죠 다른 연결 리스트 알고리즘 문제와 비슷하게 다음 노드를 가리키는 노드로 이루어진 연결 리스트가 주어지는데, 이 노드는 다음 노드 뿐 아니라 랜덤 하게 리스트 내의 다른 노드를 가리키는 포인터를 가지고 있다(물론 아무것도 안가리켜서 null일 수도 있음). 문제가 요구하는 것은 이 연결 리스트를 Deep Copy를 하는 것이다. 뭔 소린...
오늘의~~~~ 문제~~~!!! Doubly Linked List(이전, 이후 노드에 대한 포인터를 들고 있는 노드로 이루어진 연결 리스트)가 주어지는데, 얘는 특이하게 child라는 노드에 대한 포인터를 포함하고 있다. 무슨 소린고 하니, 횡으로만 연결되는 것이 아니라 종으로 새끼를 치는 식의 연결 또한 지원한다는 얘기. 아직도 무슨소린지 모르겠다고? 그렇...
오늘의 문제부터 봅시다 두개의 비지(non-empty) 않은 연결 리스트가 주어진다. 이때 주어진 연결리스트는 첫 번째 숫자부터 1의 자리, 10의 자리, 100의 자리... 처럼 10진법 숫자를 표기한다. 예를 들면 다음과 같다. 이런 식이다. 이 때 두 연결리스트를 10진법 산술식으로 계산해 반환해야 한다. 다음 예시를 보자. 문제를 보고 그냥 단순히 ...
오늘의 문제는 바로바로~~~~ 각 노드는 다음 노드만을 알고 있는 연결 리스트가 주어진다. 이때 이 주어진 연결리스트의 값이 회문을 이루는지 여부를 체크해서 반환하는 문제다. 회문이란 무엇인가? 앞에서부터 읽어도 같고, 뒤에서부터 읽어도 같은 문장을 말한다. 이 문제의 경우 값이 정수로 주어지기 때문에 리스트를 앞에서부터 읽어들이든 뒤에서부터 읽어들이든 같...
오늘 준비한 문제부터 보시죠 (당연히) 연결 리스트가 주어지고, 홀수번째 노드를 그룹화하고 그 뒤에 짝수번째 노드를 그룹화해 이어붙인 연결 리스트를 반환하는 문제다. 별도의 새로운 연결리스트를 생성하지 말고, O(1) 공간 복잡도 + O(nodes) 시간 복잡도를 지켜서 풀어야 한다. 결과가 어떻게 나와야 하냐면... 이런식이다. 값을 기준으로 모으는게 아...
오늘 풀 문제부터 보시죠. 연결 리스트가 주어지고, 양의 정수 n이 주어진다. 이때 연결 리스트의 끝에서 n번째 노드를 제거하고 연결 리스트의 헤드 노드를 제거하는 문제이다. 예를 들면 다음과 같다. 문제 자체는 간단하다. '끝에서 n+1번째 노드' -> '끝에서 n번째 노드' -> '끝에서 n-1번째 노드'가 있다면, '끝에서 n+1번째 노드'...
어제부터 연결 리스트 관련 문제를 풀고 있다. 오늘의 챕터는 두개의 포인터를 사용하는 테크닉에 대한 내용인데, 일단 문제 링크는 이것이다. 문제 자체는 간단하다. 주어진 연결 리스트가 순환하는지 안하는지를 확인해서 true/false를 반환하면 된다. 우선 문제에 활용되는 연결 리스트의 노드 구현은 다음과 같다. 이 문제의 키가 되는 두개의 포인터 테크닉은...
지난 주에 재귀 함수 관련 문제를 풀면서 느낀건데, 내가 특히 연결 리스트 혹은 이진 트리 관련된 문제에 약한것 같다는 것이다. 그래서 이번주는 일단 연결 리스트 관련 문제를 좀 풀기로 했다. 해서 LeetCode의 Linked List 콜렉션을 시작했는데, 첫번째 문제가 바로 이 연결 리스트 직접 구현하기 문제가 아닌가. 뭐 대충 개념은 알고 있기 때문에...
우선 문제부터 보시죠. LinkedList 형태의 정렬된 목록 두개가 주어지고, 이 두 목록을 정렬된 상태로 반환하는 문제다. 예를 들면 다음과 같은 모양이다. 문제에서 주어지는 LinkedList의 구현은 다음과 같다. 값의 크기에 따라 이어붙이는 식의 구현이 될텐데, 일단 이번주의 테마가 재귀였고 또 꼬리 재귀 얘기도 나와서 일단 그런 형태로 풀어보기로...
문제에 대한 상세 사항은 다음 링크에 있다. 이진 트리가 주어지고, 이 이진트리의 최대 깊이가 몇인지를 구하는 문제이다. 이번주 내내 LeetCode의 Recursion1 모음집을 풀고 있는데, 복잡성 분석 파트에 들어가니 재귀함수의 시간복잡도, 공간복잡도에 대한 파트를 지나 Tail Recursion에 대한 얘기까지 읽고 나니 등장한 문제다. Tail R...
오늘의 문제는 바로~~! n개의 계단을 오른다고 할 때, 한번의 걸음에 1 또는 2개의 계단을 오를수 있다고 가정한다. 그렇다면 이때 주어지는 숫자 n에 따라 계단을 오를 수 있는 경우의 수는 몇가지 일까? 다음 예시를 보자. 계단이 3개일때의 경우를 보면 알다시피, 몇번째 걸음에 몇계단을 걷는지까지 포함하는 경우의 수를 구해야 한다. 결론부터 말하자면, ...
(두둥탁) 오늘의 문제 보시죠 0~33사이의 숫자 하나가 주어지는데, 파스칼의 삼각형에서 이 숫자번째의 열을 배열 형태로 반환하는 문제다. 그렇다면 파스칼의 삼각형이란 무엇이냐? 0열이 [1]로 시작해서, 1열은 [1, 1], 2열은 [1, 1 + 1, 1]. 3열은 [1, 1 + (1 + 1), (1 + 1) + 1, 1] 형태로 전개해나가는 삼각형 형태...
GAE BAL JAA
자유로운 창작이 가능한 기본 포스트
소장본, 굿즈 등 실물 상품을 판매하는 스토어
정기 후원을 시작하시겠습니까?
설정한 기간의 데이터를 파일로 다운로드합니다. 보고서 파일 생성에는 최대 3분이 소요됩니다.
포인트 자동 충전을 해지합니다. 해지하지 않고도 ‘자동 충전 설정 변경하기' 버튼을 눌러 포인트 자동 충전 설정을 변경할 수 있어요. 설정을 변경하고 편리한 자동 충전을 계속 이용해보세요.
중복으로 선택할 수 있어요.