[LeetCode] 557. Reverse Words in a String III, Easy
·
CodingTest/LeetCode
1. 문제문자열 s가 주어질 때, 공백으로 구분되는 각 단어를 뒤집어서 반환하라.2. 풀이function reverseWords(s: string): string { return s.split(' ').map(word => word.split('').reverse().join('')).join(' ')};공백으로 각 단어를 구분하는 배열을 만들고, 각 단어를 다시 문자 단위로 쪼갠 배열을 뒤집어 연결하고 공백을 기준으로 join 해주면 된다.투 포인터를 사용할 수도 있는데 코드가 복잡해질거 같다.
[LeetCode] 151. Reverse Words in a String, Medium
·
CodingTest/LeetCode
1. 문제문자열 s가 주어질 때, 앞 뒤 공백은 제거하고 단어 간 1개의 빈 칸으로 연결하여 문자열을 뒤집어 반환하라.function reverseWords(s: string): string { let result = ''; const trimReverseArr = s.trim().split(' ').reverse(); for(let i = 0; itrim 함수를 이용해 앞, 뒤 공백을 제거하고 공백을 기준으로 split한 뒤 reverse하면 문자열을 뒤집어 배열 형태로 만들 수 있다.이 상태에서 공백인 값은 무시하고 마지막 단어를 제외한 단어의 뒤에 공백을 붙여주면 해결.
[LeetCode] 119. Pascal's Triangle II, Easy
·
CodingTest/LeetCode
1. 문제위 그림처럼 만들어지는 pascal 삼각형이 있을 때, 주어진 rowIndex에 해당하는 row 배열을 반환하라.유사 문제 https://fbtmdwhd33.tistory.com/319 [LeetCode] 118. Pascal's Triangle, Easy1. 문제정수 numRows가 주어질 때, 그림과 같은 파스칼 트라이앵글을 만들어 2차원 배열로 반환하라.여기서, 파스칼 트라이앵글은 문제에 들어가면 애니메이션으로 보여주지만, 위 2개의 수를 합한fbtmdwhd33.tistory.com2. 해결function getRow(rowIndex: number): number[] { const result = [[1]]; if(rowIndex === 0) return result[0]..
[LeetCode] 189. Rotate Array, Medium
·
CodingTest/LeetCode
1. 문제배열 nums와 정수 k가 주어질 때, 배열을 k번 오른쪽으로 밀었을 때 결과를 nums를 수정하라.2. 해결/** Do not return anything, modify nums in-place instead. */function rotate(nums: number[], k: number): void { let rotate = k % nums.length; nums.reverse(); nums.splice(0, rotate, ...nums.slice(0,rotate).reverse()); nums.splice(rotate, nums.length - rotate, ...nums.slice(rotate).reverse()); };일단 해결하지 못했다. 좀 더 생..
[LeetCode] 209. Minimum Size Subarray Sum, Medium
·
CodingTest/LeetCode
1. 문제배열 nums가 주어졌을 때, 이를 탐색하여 target보다 크거나 같은 값을 가지는 subarray의 가장 짧은 길이를 반환하시오.2. 해결function minSubArrayLen(target: number, nums: number[]): number { let pointer1 = 0, pointer2 = 0; let result = Number.MAX_SAFE_INTEGER, window=0; while(pointer1 슬라이딩 윈도우를 써서 풀어봤다. 개념 자체는 알고 있었는데 관련 문제는 처음 풀어보는 거 같다.이 문제에서 윈도우 내 합이 target보다 작으면, pointer2를 이동시켜 확장하고 크거나 같으면 result 변수에 최소 길이를 계..
[LeetCode] 167. Two Sum II - Input Array Is Sorted, Medium
·
CodingTest/LeetCode
1. 문제1번 인덱스를 사용하는 배열 numbers와 target이 주어질 때, 두 요소의 합이 target이 되는 인덱스를 배열에 담아 반환하라.2. 풀이function twoSum(numbers: number[], target: number): number[] { let left = 0, right = numbers.length -1; while(left target) right--; else left++; } return [left+1,right+1]};투포인터를 사용해서 양쪽에서 탐색하며, 두 합이 target보다 크면 right를 감소시키고 작으면 left를 증가시켜가며 인덱스를 찾고, 1번 인덱스를 기준으로 하므로 각 인덱스를 +1하여 배열에 ..
[LeetCode] 344. Reverse String, Easy
·
CodingTest/LeetCode
1. 문제문자열 배열이 주어질 때, 이 문자열의 순서를 반대로 뒤집어라.공간 복잡도는 O(1)로 추가 공간을 사용하면 안된다.2. 풀이/** Do not return anything, modify s in-place instead. */function reverseString(s: string[]): void { let left = 0, right = s.length-1; while(left 투 포인터를 이용하면 간단하게 뒤집을 수 있다.
[LeetCode] 14. Longest Common Prefix, Easy
·
CodingTest/LeetCode
1. 문제문자열이 담긴 배열이 주어질 때, 세 요소가 공통으로 가지는 접두사 중 가장 긴 경우를 반환하라.2. 풀이function longestCommonPrefix(strs: string[]): string { let str = strs[0]; for(let i = 1; i문자열 1개를 기준으로 공통되는 prefix가 있을 때 까지 한 개씩 줄여가면 된다.
[LeetCode] 28. Find the Index of the First Occurrence in a String, Easy
·
CodingTest/LeetCode
1. 문제문자열 haystack, needle이 주어질 때, haystack 문자열 안에 needle이 존재하면, 시작 인덱스를 반환하고 없으면 -1을 반환하라.2. 해결function strStr(haystack: string, needle: string): number { return haystack.indexOf(needle);};indexOf 함수를 이용해 해결할 수 있다.
[LeetCode] 67. Add Binary, Easy
·
CodingTest/LeetCode
1. 문제2진수 문자열 a와 b가 주어질 때, a + b 연산된 2진수 결과값을 반환하라.2. 풀이function addBinary(a: string, b: string): string { return (BigInt(`0b${a}`) + BigInt(`0b${b}`)).toString(2)};일단, 처음 문제를 봤을 때 해결 방법은 딱 떠올랐다. 두 2진수를 10진수로 변환하고 더한 뒤, 다시 2진수로 변환하는 방법이었다.이 방식을 몰라서 진법 변환을 찾았고, parseInt와 toString을 이용하면 변환이 가능해서 적용했더니, 주어지는 2진수가 큰 경우 범위를 벗어나 제대로 연산이 이루어지지 않았다.그럼, BigInt를 써보자 했는데 BigInt는 또 진법 변환 방식이 다르더라. 아래에 정리해..