분류 전체보기 201

[Python] 리트코드 140. Word Break II

https://leetcode.com/problems/word-break-ii/ Word Break II - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com class Solution: def wordBreak(self, s: str, wordDict: List[str]) -> List[str]: def isInDict(start, words): # 4. 3에서 end+1하기 땜에 시작위치가 len(s)라면 정상적으로 찾은거 if start == len(s): a..

알고리즘 2022.01.10

[Python] 리트코드 139. Word Break

https://leetcode.com/problems/word-break/ Word Break - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com class Solution: def wordBreak(self, s: str, wordDict: List[str]) -> bool: @lru_cache(None) # 결과 캐싱 def isInDict(start): # 4. 3번에서 재귀돌렸을때 현재문자열위치+1을 보내니까 # 그걸 시작위치로 받았을 때 그게 전체 문자열..

알고리즘 2022.01.10

[Python] 리트코드 202. Happy Number(two pointer)

https://leetcode.com/problems/happy-number/ Happy Number - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제는 간단하다. 숫자를 각 자리수별로 쪼개서 제곱한다음 모두 더해 1을 만들 수 있다면 True를 반환하면 된다. 아주 간단해보이지만 문제는 4 -> 16 -> 37 -> 58 -> 89 -> 145 -> 42 -> 20 -> 4 -> ... 처럼 계속 루프에 갇혀 빠져나가지 못하는 경우가 있다는 것이다. 이 ..

알고리즘 2022.01.05

[Python] 리트코드 491. Increasing Subsequences

https://leetcode.com/problems/increasing-subsequences/ Increasing Subsequences - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 이 문제는 예전에 풀었던 문제와 방식이 비슷했다. https://leetcode.com/problems/letter-tile-possibilities/ Letter Tile Possibilities - LeetCode Level up your coding skills and..

알고리즘 2022.01.03

[Python] 리트코드 763. Partition Labels(Hash)

https://leetcode.com/problems/partition-labels/ Partition Labels - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제의 첫 번째 예시에서(ababcbacadefegdehijhklij) 제일 처음 알파벳인 a를 자르려면 최소 [8]까지는 한 파트로 묶어 잘라야 나머지 파트에 a가 포함되지 않는다. 그렇게 0~8까지를 한 파트로 묶으면 그 안의 알파벳들 중 나머지 부분에 포함되는 알파벳은 하나도 없다. 그러니 이..

알고리즘 2021.12.31

[Python] 리트코드 313. Super Ugly Number(Hash)

https://leetcode.com/problems/super-ugly-number/ Super Ugly Number - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 이 문제는 예전에 풀었던 264. Ugly Number II (https://leetcode.com/problems/ugly-number-ii/) 이 문제와 비슷하다. 그래서 그 문제를 응용해서 풀어보았다. 결국 primes factors를 구하는 문제인건데 주어지는 primes에 있는 숫자들로..

알고리즘 2021.12.31

[리액트 토이프로젝트] 영화 예매 & 영화 리뷰 서비스 - 중간 점검

9월 초에 프로젝트를 계획하고 3개월이 지났다. 처음의 계획과는 프로젝트 내용이 아주 많이 달라졌다. 처음에는 개발적으로 무슨 기능을 넣고 싶은지를 생각하지 않고 계획했어서 진행하다 보니 방향이 많이 수정되었다. 현재 프로젝트는 보이는 것보다는 내가 무슨 기능을 써서 개발하고 싶은지를 더 중점적으로 고려해서 진행하고 있다. 내가 이 프로젝트를 통해 얻고 싶은 것은 크게 세 가지였다. 프로젝트를 처음부터 끝까지 혼자 개발해보는 것 라우팅 라이브러리를 사용하지 않고 개발하는 것 mobX만 사용해봐서 비교를 위해 redux를 사용해보는 것 '이 기능이 있으면 재밌겠다' 하는 것을 제외한 '적어도 이 기능은 들어가야 한다'하는 사항만 고려했을 때 65% 정도 완성된 것 같다. 개발 마감 기한을 1월 중순으로 잡..

토이프로젝트 2021.12.29

[JavaScript] this

this란 자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 자기 참조 변수 this에 바인딩될 값은 함수가 어떻게 호출되었는지에 따라 동적으로 결정된다. this 바인딩 함수 호출 방식 this 바인딩 일반 함수 전역 객체 메서드 메서드를 호출한 객체 생성자 함수 미래에 생성할 인스턴스 apply/call/bind 해당 메서드에서 첫번째 인수로 전달한 객체 *일반 함수로 호출된 모든 함수(메서드 내에서 정의한 중첩 함수, 콜백 함수 포함)내부의 this에는 전역 객체가 바인딩된다.

JavaScript 2021.12.27

[JavaScript] 함수

함수란 일련의 과정을 statement로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것 함수 리터럴 함수 리터럴은 함수 이름, 매개변수 목록, 함수 몸체로 구성되어 있다. 리터럴과 마찬가지로 함수 리터럴도 평가되어 값을 생성하며 이 값은 객체다. 하지만 일반 객체와는 다르게 함수는 호출할 수 있다. 함수 정의 방법 함수 선언문 함수 표현식 생성자 함수 화살표 함수 1. 함수 선언문 함수 리터럴과 형태가 동일하다. 차이점은 함수 선언문은 함수 이름을 생략할 수 없다는 것이다. 함수 선언문은 표현식이 아닌 문인데 변수에 할당할 수 있는 것처럼 동작한다. 이 이유는 자바스크립트 엔진이 코드의 문맥에 따라 함수 선언문 혹은 함수 리터럴 표현식으로 해석하기 때문이다. 함수 선언문이 값으로 평가되어야..

JavaScript 2021.12.26

[JavaScript] 객체 리터럴

객체 생성 방법 객체 리터럴 Object 생성자 함수 생성자 함수 Object.create 메서드 클래스 객체 리터럴은 값으로 평가되는 표현식 프로퍼티 객체는 프로퍼티의 집합 * 이미 존재하는 프로퍼티 키를 중복 선언하면 기존 프로퍼티를 덮어쓴다. var foo = { name: 'Lee', name: 'Kim' }; console.log(foo.name); // Kim 메서드 객체에 묶여 있는 함수. 함수는 값으로 취급할 수 있기 때문에 프로퍼티 값으로 사용할 수 있다. 일반 함수와 구분하기 위해 메서드라고 부른다. 프로퍼티 읽기, 삭제 - 객체에 존재하지 않는 프로퍼티에 접근하면 ReferenceError가 아닌 undefined를 반환 var person = { name: 'Lee' }; conso..

JavaScript 2021.12.26