Eunji Lee

문제

Given the root of a binary tree, return the length of the diameter of the tree.

The diameter of a binary tree is the length of the longest path between any two nodes in a tree. This path may or may not pass through the root.

The length of a path between two nodes is represented by the number of edges between them.

이진 트리의 root가 주어질 때, 트리 지름의 길이를 반환하라.

이진 트리의 지름은 트리의 두 노드 사이에서 가장 긴 경로의 길이다. 이 경로는 루트를 통과할 수도 있고, 통과하지 않을 수도 있다.

두 노드 사이의 경로 길이는 두 노드 사이의 모서리 수로 표시된다.

Example 1:

Input: root = [1,2,3,4,5]
Output: 3
Explanation: 3 is the length of the path [4,2,1,3] or [5,2,1,3].

Example 2:

Input: root = [1,2]
Output: 1

문제풀이

--

--

문제

Given two strings ransomNote and magazine, return true if ransomNote can be constructed by using the letters from magazine and false otherwise.

Each letter in magazine can only be used once in ransomNote.

두 개의 문자열 ransomNote magazine이 주어질 때, magazine의 문자를 사용하여 ransomNote를 구성할 수 있으면 true, 아니면 false를 반환하라.
magazine 의 각 글자는 ransomNote 에서 한 번만 사용할 수 있다.

Example 1:

Input: ransomNote = "a", magazine = "b"
Output: false

Example 2:

Input: ransomNote = "aa", magazine = "ab"
Output: false

Example 3:

Input: ransomNote = "aa", magazine = "aab"
Output: true

문제풀이

--

--

문제

Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum.

A subarray is a contiguous part of an array.

정수로 이루어진 배열 nums 가 주어질 때, 가장 큰 합을 갖는 연속적인 하위 배열(최소한 하나의 숫자를 포함)을 찾아 그 합을 반환하라.

Example 1:

Input: nums = [-2,1,-3,4,-1,2,1,-5,4]
Output: 6
Explanation: [4,-1,2,1] has the largest sum = 6.

Example 2:

Input: nums = [1]
Output: 1

Example 3:

Input: nums = [5,4,-1,7,8]
Output: 23

문제풀이

--

--

문제

Given an array of integers nums which is sorted in ascending order, and an integer target, write a function to search target in nums. If target exists, then return its index. Otherwise, return -1.

You must write an algorithm with O(log n) runtime complexity.

오름차순으로 정렬된 정수로 이루어진 배열 numstarget이 주어질 때, nums 배열에서 target을 찾는 함수를 반환하라. target이 존재한다면 해당 인덱스를, 그렇지 않다면 -1을 반환하라.

단, 시간복잡도가 O(log n)인 알고리즘을 작성하라.

Example 1:

Input: nums = [-1,0,3,5,9,12], target = 9
Output: 4
Explanation: 9 exists in nums and its index is 4

Example 2:

Input: nums = [-1,0,3,5,9,12], target = 2
Output: -1
Explanation: 2 does not exist in nums so return -1

문제풀이

--

--

문제

Given the root of a binary tree, invert the tree, and return its root.

이진트리의 root가 주어지면 트리를 반전시켜 반환하라.

Example 1:

Input: root = [4,2,7,1,3,6,9]
Output: [4,7,2,9,6,3,1]

Example 2:

--

--

문제

A phrase is a palindrome if, after converting all uppercase letters into lowercase letters and removing all non-alphanumeric characters, it reads the same forward and backward. Alphanumeric characters include letters and numbers.

Given a string s, return true if it is a palindrome, or false otherwise.

모든 대문자를 소문자로 변환하고, 영숫자가 아닌 문자를 모두 제거한 후, 앞뒤로 동일하게 읽는 경우 true, 아니면 false를 반환하라.

Example 1:

Input: s = "A man, a plan, a canal: Panama"
Output: true
Explanation: "amanaplanacanalpanama" is a palindrome.

Example 2:

Input: s = "race a car"
Output: false
Explanation: "raceacar" is not a palindrome.

Example 3:

Input: s = " "
Output: true
Explanation: s is an empty string "" after removing non-alphanumeric characters.
Since an empty string reads the same forward and backward, it is a palindrome.

문제풀이

--

--