본문 바로가기

분류 전체보기

(213)
[Leetcode] 6. Zigzag Conversion - JS https://leetcode.com/problems/zigzag-conversion/description/?envType=study-plan-v2&envId=top-interview-150  1. 문제 분석문제분석--------------------'PAYPALISHIRING' 문자는 지그재그 패턴으로 작성되었다.P A H RA P L S I I GY I R이를 한줄씩 읽어보면 'PAHNAPLSIIGYIR'이다.문자열 s와 행숫자 numRows이 주어질 때, 위처럼 변환된 문자를 반환하라.제한조건--------------------- 1  2. 접근 방법접근방법--------------------지그재그 패턴에 맞게 정확한 위치에 문자를 배분한 뒤 이를 연결한 값을 반환한다.1. nu..
[Leetcode] 151. Reverse Words in a String - JS https://leetcode.com/problems/reverse-words-in-a-string/description/?envType=study-plan-v2&envId=top-interview-150 1. 문제 분석문제분석--------------------- 문자열 s를 주면 단어를 역순으로 하여 반환하라.- s는 적어도 하나의 공백으로 구분되어 있다.- s는 앞쪽, 혹은 뒤쪽에 공백과 문자 사이의 다수의 공백이 존재할 수 있다.- 반환되는 문자열은 문자 사이의 공백은 1개만으로 구분되어야 하며 다른 공백은 포함하면 안된다.제한조건--------------------- 1  2. 접근 방법접근방법--------------------1. 앞뒤 공백을 제거한다. trim2. 뒤쪽에서 순회하면서문자열이..
[Leetcode] 14. Longest Common Prefix - JS https://leetcode.com/problems/longest-common-prefix/description/?envType=study-plan-v2&envId=top-interview-150 1. 문제 분석문제분석--------------------- 문자열 배열 중 가장 긴 공통 접두어를 찾아서 반환하라.- 없다면 빈 문자열을 반환하라.제한조건--------------------- 1  2. 접근 방법접근방법--------------------첫번째 문자열을 기준으로,문자열을 하나씩 순회하면서 다른 문자들의 동일한 위치에 같은 문자열이 있는지 확인한다.만약 다른 문자들의 동일한 위치에 다른 문자열이 있다면 반복문을 종료하고 prefix를 반환  3. 코드var longestCommonPrefix..
[Leetcode] 58. Length of Last Word - JS https://leetcode.com/problems/length-of-last-word/description/?envType=study-plan-v2&envId=top-interview-150 1. 문제 분석문제분석--------------------- 단어와 공백으로 구성된 문자열 s가 주어진다.- 문자열 속 마지막 단어의 길이를 반환하라.제한조건--------------------- 1  2. 접근 방법접근방법--------------------적어도 1개의 단어는 존재한다고 했다.즉, 1개의 단어는 무조건 존재하고 공백은 있을 수도 없을 수도 있다.1. split 메서드를 사용공백을 기준으로 나눈 배열 중 마지막 요소의 길이를 구하는 방법복잡도 분석--------------------시간복잡도: ..
[Leetcode] 12. Integer to Roman - JS https://leetcode.com/problems/integer-to-roman/description/?envType=study-plan-v2&envId=top-interview-150 1. 문제 분석문제분석--------------------높은 자리값에서 낮은 값으로 변환하면서 로마 기호로 변환한다.- 4,9로 시작하지 않는다면, 입력에서 밸 수 있는 최대값 기호를 선택하여 결과에 기호를 추가한 뒤 그 값을 뺀 뒤 나머지를 로마 기호로 변환한다.- 4,9로 시작한다면, 4는 5보다 1작고 9는 10보다 1작으니 각각 IV(4), IX(9), XL(40), XC(90), CD(400), CM(900)을 사용한다.- 10의 배수(I, X, C, M)만 최대 3번 연속해서 추가할 수 있다.- 연속 4번..
[Leetcode] 13. Roman to Integer - JS https://leetcode.com/problems/roman-to-integer/description/?envType=study-plan-v2&envId=top-interview-150 1. 문제 분석문제분석--------------------- I = 1- V = 5- X = 10- L = 50- C = 100- D = 500- M = 1000- 2는 II, 12는 XII, 27은 XXVII- Roman 숫자는 왼쪽에서 오른쪽으로 가장 큰거부터 작은거 순서대로 작성한다.- 하지만 4는 IIII가 아니라, IV이다. 왜냐하면 5 이전에 존재하는 값은 4를 만들기 위해 빼준다. 같은 방법으로 9는 VIIII가 아니라 IX이다.- 추가로 6가지 상황이 있다. - I는 V, X 앞에 위치하여 4, 9..
[Leetcode] 42. Trapping Rain Water - JS https://leetcode.com/problems/trapping-rain-water/description/?envType=study-plan-v2&envId=top-interview-1501. 문제 분석문제분석--------------------- 양의 정수 n으로 이루어진 배열이 주어진다.- n은 바의 높이를 의미한다.- 비가 오고 난 후 얼마나 많은 양의 물을 가둘 수 있는지 계산하라.제한조건--------------------- n == height.length- 1   2. 접근 방법접근방법--------------------물을 가두기 위해서는 높이를 가진 왼쪽 바와 오른쪽 바가 존재해야한다.height = [2,1,0,1,3,2]파란색 부분에 물을 채우기 위해선 어떻게 해야할까?우선 in..
[Leetcode] 135. Candy - JS https://leetcode.com/problems/candy/description/ 1. 문제 분석문제분석------------------- 줄에 서있는 n명의 아이들이 있다.- 각각의 아이는 정수 배열 ratings에서 주어진 rating 값을 배정받는다.- 아이들에게 분배할 최소한의 캔디의 갯수를 반환하라.- 아래 요구사항에 맞게 아이들에게 캔디를 줘라.1. 각각의 아이는 최소 1개의 캔디는 가져야한다.2. 높은 rating을 가진 아이들은 그들의 양 옆의 아이들보다 더 많은 캔디를 가져야한다.제한조건------------------- n == ratings.length- 1  2. 접근 방법접근방법 - Greedy 알고리즘--------------------Greedy 알고리즘은 현재 최적으로 ..