chaneesong's blog
취소

Valid Parentheses

20. Valid Parentheses 문제 설명 '(', ')', '{', '}', '[', ']'로 이루어진 문자열이 주어질 때, 입력 문자열이 유효한지 판단하라. 입력 문자열이 유효한 경우: 열린 괄호는 같은 타입의 닫히는 괄호로 닫혀야 한다. 열린 괄호는 정확한 위치에서 닫혀야한다. 모든 닫힌 괄호는 같은 타입의 열린 괄호가 존재한다. ...

Reverse Linked List II

92. Reverse Linked List II 문제 설명 연결 리스트의 head와 두 정수 left와 right가 주어질 때(left <= right), left부터 right까지 노드들을 뒤집고, 연결리스트를 리턴하라. 해결 방법 변하지 않는 start(left의 한칸 앞)와 end(left 노드) 노드를 두고, start와 end 사...

Odd Even Linked List

328. Odd Even Linked List 문제 설명 단일 연결리스트의 head가 주어질 때, 홀수 번째 노드 뒤에 짝수 번째 노드가 오도록 그룹화 한 후, 재정렬 된 리스트를 반환하라. 첫 번째 노드는 홀수로 간주되고, 두 번째 노드는 짝수 번째 노드로 간주한다. 주의사항 - 짝수와 홀수를 구분하여 나눌 때 그룹 내에서 상대적 순서는 입력...

Swap Nodes in Pairs

24. Swap Nodes in Pairs 문제 설명 연결 리스트가 주어질 때, 모든 두 개의 인접 노드를 스왑하고, 스왑한 노드들의 head를 리턴하라. 이 문제는 리스트 노드의 values를 바꾸지 않고 해결해야 한다(node 자체를 바꿔야 한다.). 해결 방법 재귀를 이용해 해결한다. 재귀의 종료 조건은 연결리스트의 끝까지 도달 ...

Add Two Numbers

2. Add Two Numbers 문제 설명 자연수로 나타내고 비어있지 않은 두 개의 연결 리스트가 주어진다. 숫자는 역순으로 저장되어 있고, 각각의 노드에는 한 자리 숫자가 들어있다. 두 개의 숫자를 더한 연결 리스트를 반환하라. 두 숫자에는 필요한 0을 제외하고, 선행하는 0이 포함되어 있지 않다고 가정한다(가장 앞에 0은 없다). 해결 방...

Reverse Linked List

206. Reverse Linked List 문제 설명 단일 연결 리스트의 head가 주어질 때, 리스트를 뒤집고, 뒤집어진 리스트를 리턴하라. 해결 방법 재귀를 이용하여 리스트를 뒤집는다. 재귀의 종료 조건 받은 node인자가 null일 때 종료한다(리스트를 끝까지 순회 했을 때). 현재 리스트의 다음 노드를 저장하고, 이전 노드를...

Merge Two Sorted Lists

21. Merge Two Sorted Lists 문제 설명 정렬 된 두 개의 연결 리스트 list1과 list2의 head가 주어진다. 두 리스트를 하나로 병합하라. 이 리스트는 두 리스트의 노드를 이어 붙여서 만들어야 한다. 병합된 연결 리스트의 head를 반환하라. 해결 방법 재귀를 활용하여, 두 리스트를 병합한다. 물론 반복문을 통해서...

Palindrome Linked List

234. Palindrome Linked List 문제 설명 단일 연결리스트의 head가 주어질 때, 팰린드롬이면 true 아니면 false를 리턴하라. 해결 방법 런너 기법을 활용하여 절반의 리스트를 뒤집은 뒤, 팰린드롬을 비교한다. 런너 기법은 리스트의 이동하는 두 개 이상의 포인터가 있을 때 이 포인터들의 이동 길이를 다르게 하는 기법이...

Best Time to Buy and Sell Stock

121. Best Time to Buy and Sell Stock 문제 설명 i번 째 날의 주식 가격이 prices[i]인 prices 배열이 주어진다. 특정 날짜 하루를 지정 해서 주식을 사고, 주식을 산 날보다 미래의 다른 날짜에 주식을 팔아서 최대의 이익을 내고 싶다. 해당 거래에서 달성 할 수 있는 가장 큰 이익을 리턴하고, 이익을 얻을...

Product of Array Except Self

238. Product of Array Except Self 문제 설명 정수 배열 nums가 주어질 때, result[i]는 nums[i]를 제외한 배열의 모든 숫자의 곱과 같게 하여 리턴하라. 최대 숫자는 32-bit 정수임을 보장한다. 시간 복잡도는 O(n)이내로 하고, 나눗셈을 사용할 수 없다. 해결 방법 result배열에 자기 자신을...