목록개발 (41)
개발여행의 블로그
설명 문자열 s가 주어질 때 s의 각 문자가 c와 떨어진 최단거리를 반환하는 문제이다. 예를 들어, s = 'test' , c = 'e' 일 때 [1, 0, 1, 2]를 반환해야 한다. (t는 e에서 1만큼 떨어져있고, e는 0, s는 1, 마지막 t는 2만큼 떨어져있기 때문이다.) Problem Given a string s and a character c that occurs in s, return an array of integers answer where answer.length == s.length and answer[i] is the distance from index i to the closest occurrence of character c in s. The distance between ..
parseInt 문자열에서 숫자만 추출해보자! 설명 parseInt를 사용하지 않고 문자열에서 추출한 정수를 반환 function extractNumbers(string) { let result = 0; if (typeof string !== "string") { return false; } for (const char of string) { if (!isNaN(char)) { result = result * 10 + Number(char); } } return result; } parseInt를 사용하지 않고 문자열 '00ab30c4' 에서 숫자 304만 반환받으려면 자릿수를 이용해서 반환값을 계산할 수 있다. result = result * 10 + Number(char); 구문에서 1) char에 ..
회문 문자열이란? 앞에서부터 읽거나 뒤에서부터 읽거나 모두 동일한 문자열이다. 문제 문자열이 주어졌을 때 회문 문자열인지 아닌지 출력하는 코드를 작성해보자! 입력 & 출력 길이 100 이하의 공백 없는 문자열 ex1) TEST -> false 출력 ex2) teeT -> ture 출력 풀이 두 가지 방법 정도로 해결할 수 있다. 1) Array.prototype.reverse()를 활용해서 거꾸로 뒤집어진 문자열 생성 후 같은지 확인. Array.prototype.reverse() 2) 문자열의 앞과 뒤의 짝을 맞춰서 같은 문자인지 비교. 문자열의 맨 앞과 맨 뒤 비교, 두 번째 문자열과 끝에서 두 번째 문자열 비교 이렇게 반복해서 다른 문자가 있을 경우 false를 리턴한다. 코드 1) reverse ..
유클리드 호제법 (유클리드 알고리즘)은 2개의 자연수의 최대공약수를 구하는 알고리즘이다. * 최대공약수 : GCD(Greatest Common Divisor) 양의 정수 A, B가 존재하고 A가 B보다 크다는 전제하에 A를 B로 나눈 나머지를 r이라고 칭한다. 이때 A와 B의 최대공약수는 B와 r 사이의 최대공약수와 같다. 이것이 유클리드 호제법이다. 그 이유를 살펴보자! A는 어떤 수 * 최대공약수, B는 어떤 수 * 최대공약수로 나타낼 수 있다. 즉 아래와 같이 나타낼 수 있다. (최대공약수이기 때문에 더 이상 약수는 존재하지 않아야 하므로 a와 b는 서로소이다.) 여기서 증명해야 할 것은 A와 B의 최대공약수는 G이므로 A를 B로 나눈 나머지가 r이었을 때, B와 r의 최대공약수도 G인지 확인해야 ..
이 글은 '모던 자바스크립트 Deep Dive' 내용을 발췌한 글입니다. 논리 연산자를 사용한 단축 평가 논리곱(&&) 또는 논리합(||) 연산자 표현식은 언제나 2개의 피연산자 중 어느 한쪽으로 평가 논리곱 (&&) 연산자 > 논리곱 연산자는 두 개의 피연산자가 모두 true로 평가될 때 true를 반환 > 논리곱 연산자는 좌항에서 우항으로 평가가 진행 'One' && 'Two' 첫 번째 피연산자 'One'은 Truthy 값이므로 true로 평가된다. 하지만 이 시점까지는 위 표현식을 평가할 수 없다. 두 번째 피연산자까지 평가해야 위 표현식을 평가할 수 있다. 즉, 두 번째 피연산자가 위 논리곱 연산자 표현식의 평가 결과를 결정한다. 이때 논리곱 연산자는 논리 연산의 결과를 결정하는 두 번째 피연산자..
✅ for ... of The for...of statement creates a loop iterating over iterable objects, including: built-in String, Array, array-like objects (e.g., arguments or NodeList), TypedArray, Map, Set, and user-defined iterables. It invokes a custom iteration hook with statements to be executed for the value of each distinct property of the object. for of 문은 iterable을 순회하면서 iterable의 요소를 변수에 할당한다. 내부적으로 it..