리트코드 - 139. Word Break 출처 - https://leetcode.com/problems/word-break/description/?envType=study-plan-v2&envId=top-interview-150 문제 설명 주어진 문자열 s와 문자열 사전 wordDict가 있을 때, 만약 s를 하나 이상의 사전 단어로 이루어진 공백으로 구분된 시퀀스로 나눌 수 있다면 true를 반환합니다. 단어 사전에서 동일한 단어가 세그먼트 내에서 여러 번 재사용될 수 있음에 유의하세요. 의사코드 wordDict의 크기가 0이면 false 리턴 wordSet = wordDict를 Set으로 변경 n = s.length dp = new boolean[n + 1] dp[0] = true 반복문 시작 (i ..
리트코드 - 198. House Robber 출처 - https://leetcode.com/problems/house-robber/description/?envType=study-plan-v2&envId=top-interview-150 문제 설명 당신은 길거리의 집들을 훔칠 계획을 세운 전문적인 도둑입니다. 집집마다 특정 금액의 돈이 숨겨져 있으며, 훔치는 것을 멈출 유일한 제약조건은 인접한 집들의 보안 시스템이 연결되어 자동으로 경찰에 연락이 되는 것이고, 이러한 연락은 인접한 두 집이 같은 날 저녁에 털린다면 발생합니다. 각 집의 돈의 양을 나타내는 정수 배열 nums가 주어지면 경찰에 경고를 주지 않고 오늘 밤 강탈할 수 있는 최대 금액을 반환하십시오. 의사코드 if (nums.length == 0..
리트코드 - 45. Jump Game II 출처 - https://leetcode.com/problems/jump-game-ii/description/?envType=study-plan-v2&envId=top-interview-150 문제 설명 주어진 길이 n의 정수 배열 nums가 있습니다 (인덱스는 0부터 시작). 초기 위치는 nums[0]입니다. 각 원소 nums[i]는 인덱스 i에서 가능한 전진 점프의 최대 길이를 나타냅니다. 다시 말해, 만약 nums[i]에 있다면, 0
리트코드 - 70. Climbing Stairs 출처 - https://leetcode.com/problems/climbing-stairs/description/?envType=study-plan-v2&envId=top-interview-150 문제 설명 계단을 올라가고 있습니다. 꼭대기에 도달하려면 n개의 단계가 필요합니다. 각 단계에서는 1단계 또는 2단계씩 올라갈 수 있습니다. 꼭대기에 도달하기 위해 몇 가지 서로 다른 방법으로 계단을 올라갈 수 있을까요? 의사코드 climbStair (int n) if (n
리트코드 - 69. Sqrt(x) 출처 - https://leetcode.com/problems/sqrtx/description/?envType=study-plan-v2&envId=top-interview-150 문제 설명 0 이상의 정수 x가 주어졌을 때, x의 제곱근을 내림하여 가장 가까운 정수로 반환합니다. 반환된 정수는 반드시 0 이상이어야 합니다. 내장 지수 함수나 연산자를 사용해서는 안 됩니다. C++에서는 pow(x, 0.5)이나 Python에서는 x ** 0.5와 같은 함수를 사용해서는 안 됩니다. 의사코드 if (x == 0) 0 리턴 left = 1 right = x 반복문 시작 (left sqrt) right = mid - 1 반복문 종료 right 리턴 풀이코드 class Solut..
리트코드 - 66. Plus One 출처 - https://leetcode.com/problems/plus-one/description/?envType=study-plan-v2&envId=top-interview-150 문제 설명 integer 배열로 표현된 큰 정수가 주어집니다. 각 digits[i]는 정수의 i번째 자릿수이며, digits는 가장 중요한 자릿수에서 가장 덜 중요한 자릿수로 왼쪽에서 오른쪽으로 정렬되어 있습니다. 이 큰 정수는 선행 0이 없습니다. 큰 정수를 하나 증가시키고, 증가된 결과의 자릿수 배열을 반환하세요. 의사코드 lastIndex = digits.legnth - 1 반복문 시작 (배열의 lastIndex에서 0까지) if (digits[i] + 1 < 10) digits[i..