본문 바로가기

leetcode 준비5

[Leetcode][C++][난이도 Easy] Merge Two Sorted Lists Leetcode의 난이도 easy 6번째 문제는 merge two sorted lists라는 문제입니다. 이미 정렬된 2개의 list를 합치고 반환하는 대신, 합쳐진 list는 또 정렬된 상태로 변환되어야 합니다. 그리고 반환되는 정보는 합쳐진 list의 head 포인터입니다. 우선 예제와 함께 문제에 대한 설명을 이어가겠습니다. Merge Two Sorted Lists 문제 분석 위 [사진 1]의 첫번째 예제부터 살펴보겠습니다. 첫번째 list는 붉은색으로 표시되어 있습니다. 이 때 head가 1이고, 차례대로 값이 2, 4인 노드를 가리키고 있습니다. 두번째 list는 보라색으로 표시되어 있습니다. 이 때 head가 1이고, 차례대로 값이 3, 4인 노드를 가리키고 있습니다. 이제 문제에서 제시한 조.. 2022. 12. 13.
[Leetcode][C++][난이도 Easy] Valid Parentheses Leetcode의 난이도 easy 5번째 문제는 valid parentheses 입니다. 입력으로 주어지는 string s에는 오직 소괄호, 중괄호, 대괄호 기호들만 들어 있는데요, 이들이 서로 짝을 이루는 경우라면 true, 짝을 이루지 못하는 경우라면 false를 반환해야 합니다. 우선 문제 분석을 진행하겠습니다. Valid Parentheses 문제 분석 첫번째 예제에서는 s가 "()" 으로 주어졌네요. 이 경우, "(" 문자가 ")" 와 서로 쌍을 이루기 때문에, 최종 결과는 true가 됩니다. 두번째 예제에서는 s가 "()[]{}" 으로 주어졌습니다. 이 경우도 역시 각각의 "(", "[", "{" 기호가 ")", "]", "}" 기호와 쌍을 이루기 때문에, 역시 최종 결과는 true가 됩니다... 2022. 12. 10.
[Leetcode][C++][난이도 Easy] Longest Common Prefix Longest Common Prefix 문제 분석 Leetcode의 난이도 easy 4번째 문제는 longest common prefix 입니다. 위 [사진 1]과 같이, 문자열들이 나열되어 있을 때, 공통적으로 나열된 접두사 (prefix) 문자열을 탐색하고 반환해주면 됩니다. 아래 Example 1에서 "flower", "flow", "flight"는 앞에 "fl" 이라는 접두사가 공통으로 들어가 있기 때문에, "fl"이 반환됩니다. Example 2의 경우, "dog", "racecar", "car" 이므로, 서로 공통으로 갖는 접두사가 없기 때문에 빈 string "" 을 반환해야 합니다. 문제의 조건인 constraints를 보니, 영어 소문자들로만 문자열 목록이 주어진다고 하네요. Longes.. 2022. 12. 7.
[Leetcode][C++][난이도 Easy] Roman to Integer Leetcode의 난이도 easy로 3번째 문제는 Roman to Integer입니다. 말 그대로, string 변수로 저장된 로마 숫자 기호들을 integer로 변환하는 문제인데요, 규칙을 파악하면 쉽게 해결할 수 있는 문제였습니다. 우선 문제 분석을 하고, 문제 해결을 위한 C++ 코드, 솔루션 코드 중 제일 많은 추천을 받은 코드를 순차적으로 살펴보겠습니다. Roman to Integer 문제 분석 문제의 핵심은 로마 기호 I, X, C가 주어진 로마 숫자 기호 string에서 어디에 위치하는지에 따라 다른 integer를 반환한다는 것입니다. 예를 들어, XI 는 11 인데요, IX 는 9입니다. 위 과 같이, 주어진 지문에서도 I, X, C 문자의 위치에 대한 예제를 제시하고 있군요. Roman.. 2022. 12. 5.