카테고리: Algorithm

[알고리즘] Valid Parentheses

Leetcode의 Valid Parentheses 문제를 풀어보도록 하겠습니다. 문제(, ), {, }, [, ] 만으로 이뤄진 문자열이 주어졌을 때, 다음 조건을 만족하면 true 만족하지 않으면 false를 리턴하라. 같은 종류의 괄호로만 열고 닫혀야 한다. 괄호들은 등장한 순서대로 닫혀야 한다. 단, 빈 문자열은 무조건 true로 간주한다. Ex

[알고리즘] Remove Nth Node From End of List

Leetcode의 Remove Nth Node From End of List 문제를 풀어보도록 하겠습니다. 문제링크드 리스트가 주어졌을 때, 끝에서 n번째 노드를 제거 후, 그 링크드 리스트의 헤드를 리턴하라. 예를 들어, 링크드 리스트가 1->2->3->4->5이고 n이 2라면, 1->2->3->5를 리턴해야 한다.왜

[알고리즘] Letter Combinations of a Phone Number

Leetcode의 Letter Combinations of a Phone Number 문제를 풀어보도록 하겠습니다. 문제전화기의 키패드를 나타내는 2와 9 사이의 숫자로 이루어진 문자열이 주어졌을 때, 이 문자열로 표현할 수 있는 가능한 모든 글자의 조합을 구하라. 예를 들면, 입력으로 23을 들어오면 ["ad", "ae&quo

[알고리즘] Container With Most Water

Leetcode의 Container With Most Water 문제를 풀어보도록 하겠습니다. 문제물의 높이를 나타내는 양의 정수로 이뤄진 배열이 주어졌을 때, 두개의 높이로 만들 수 있는 수조의 최대 넓이를 구하라.단, 배열은 최소 2개의 원소로 구성되어 있고 수조를 기울일 수 없다. 예제 입력: [1,8,6,2,5,4,8,3,7] 출력: 49 2번째

[알고리즘] Longest Palindromic Substring

Leetcode의 Longest Palindromic Substring 문제를 풀어보도록 하겠습니다. 문제주어진 문자열에서 가장 긴 회문(palindrome)을 찾아라. 문자열이 최대 길이는 1000이라고 가정한다. 예제 입력: “babad” => 출력: “bab” 또는 “aba” 입력: “cbbd” => 출력: “bb” 풀이회문(palin

[알고리즘] Longest Substring Without Repeating Characters

Leetcode의 Longest Substring Without Repeating Characters 문제를 풀어보도록 하겠습니다. 문제문자열이 주어졌을 때 중복되는 문자를 포함하지 않는 가장 긴 구간의 길이를 구하라. 예제 입력: “abcabcbb”, 출력: 3 입력: “bbbbb”, 출력: 1 입력: “pwwkew”, 출력: 3 마지막 예제의

[알고리즘] Add Two Numbers

Leetcode의 Two Sum 문제를 풀어보도록 하겠습니다. 문제양의 정수를 나타내는 두 개의 비어있지 않은 링크드 리스트가 주어졌다.각 노드는 1자리 숫자(0…9)를 담고 있고 숫자들은 역순으로 저장되어 있다.이 링크드 리스트에 저장되어 있는 두 개의 수를 더한 값을 링크드 리스트에 역순으로 저장하여 반환하라.숫자 0을 제외하고는 두개의 수 앞에는 위치

[알고리즘] Next Permutation

Leetcode의 Next Permutation 문제를 풀어보도록 하겠습니다. 문제숫자 배열이 주어졌을 때, 배열 내의 숫자를 재배열하여 다음으로 큰 순열을 만들어내는 로직을 구현하라.가장 커서 다음으로 큰 순열이 없는 경우, 가장 작은 순열이 다음으로 큰 순열이 된다.상수 크기의 추가 메모리만을 사용해야 하고 배열 내에서(in place) 재배열을 해야한

[알고리즘] 3 Sum

Leetcode의 3 Sum 문제를 풀어보도록 하겠습니다. 문제정수로 이뤄진 nums 배열이 주어졌을 때, a + b + c = 0을 만족하는 모든 부분 배열 [a, b, c]를 구하라.단, 리턴 값에는 중복된 부분 배열이 포함되어 있으면 안된다. 예를 들어, 배열 [-1, 0, 1, 2, -1, -4] 주어지면, -1 + 0 + 1 = 0, -1 + -

[알고리즘] Two Sum

Leetcode의 Two Sum 문제를 풀어보도록 하겠습니다. 문제정수 값이 담긴 배열 nums와 특정한 정수 target이 주어졌다.nums 배열 안에 있는 숫자 중에서 두 개의 숫자를 더했을 때, target 값과 동일해지는 두 숫자의 배열 인덱스를 리턴하라. 예를 들어, nums가 [2, 7, 11, 15]이고 target이 9라면 [0, 1]을 리턴