Given an integer array nums, return an array answer such that answer[i] is equal to the product of all the elements of nums except nums[i].The product of any prefix or suffix of nums is guaranteed to fit in a 32-bit integer.You must write an algorithm that runs in O(n) time and without using the division operation.division 연산 없이 O(n)의 시간 복잡도로 계산하라고 제약 조건이 주어진 문제였다! 풀이class Solution: def produ..
분류 전체보기
제네릭(Generic)이란?C나 자바 같은 정적 언어에서 다양한 타입 간에 재사용성을 높이기 위해 사용하는 문법이다. 타입스크립트도 정적 타입을 가지므로 제네릭 문법을 지원한다.제네릭의 사전적 의미는 일반적인 것(general)을 뜻하는데, 타입스크립트의 제네릭도 이와 비슷하게 '일반화된 데이터' 타입이라 볼 수 있다.제네릭: 함수, 타입, 클래스 등에서 내부적으로 사용할 타입을 미리 정해두지 않고 타입 변수를 사용해서 해당 위치를 비워 둔 다음에, 실제로 그 값을 사용할 때 외부에서 타입 변수 자리에 타입을 지정하여 사용하는 방식-> 이렇게 하면 함수, 타입, 클래스 등 여러 타입에 대해 하나하나 따로 정의하지 않아도 되기 때문에 재사용성이 크게 향상된다.타입 변수는 일반적으로 와 같이 꺾쇠괄호 내부에..
Given an integer array nums and an integer k, return the k most frequent elements. You may return the answer in any order.빈도수가 높은 순서대로, 상위 k개의 elements를 출력하는 문제다. 풀이 1class Solution: def topKFrequent(self, nums: List[int], k: int) -> List[int]: count = defaultdict(int) for i in nums: count[i] += 1 result = sorted(count, key=count.get, reverse=Tr..
anagram은 일단 sort 후 비교를 떠올리자! 풀이1: 리스트 활용class Solution: def groupAnagrams(self, strs: List[str]) -> List[List[str]]: result = [] visited = [False] * len(strs) for i in range(len(strs)): if visited[i]: continue tmp = [] tmp.append(strs[i]) visited[i] = True for j in range(len(strs)): if so..
내 풀이: 브루트포스class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: result = set() for i in range(len(nums)): for j in range(len(nums)): if nums[i] + nums[j] == target and i != j: result.add(i) result.add(j) result = list(result) return sorted(result)set에다가 추가하고 리스트로 바꾸고 sor..
풀이1: 리스트 사용class Solution: def isAnagram(self, s: str, t: str) -> bool: if len(s) != len(t): return False letters = [] for i in s: letters.append(i) for i in t: if i in letters: letters.remove(i) else: return False return True리스트를 사용하여 단순하게 구현한 풀이 풀이2: sorted 후 ..
풀이 1 : 리스트와 in 문법 사용class Solution: def hasDuplicate(self, nums: List[int]) -> bool: count = [] for i in nums: if i not in count: count.append(i) else: return True return FalseNeetCode에서 통과한 코드다.하지만 LeetCode에서는 nums 배열이 아주 큰 테스트케이스에서 시간 초과로 통과하지 못했다. 풀이 2 : set과 in 문법 사용class Solution: def containsDuplicate(se..
보호되어 있는 글입니다.
데이터 타입은 값의 종류.ES6은 7개의 데이터 타입을 제공한다.원시 타입(primitive type)numberstringbooleanundefinednullsymbol: ES6에서 도입객체 타입(object/reference type)자바스크립트 엔진은 타입을 구별해서 값을 취급한다. 6.1 숫자 타입자바스크립트는 정수와 실수를 구분하지 않고 하나의 숫자 타입만 존재한다.ECMAScript 사양에 따르면, 숫자 타입의 값은 배정밀도 64비트 부동소수점 형식을 따른다.즉, 모든 수를 실수로 처리하고 integer type이 별도로 존재하지 않는다.자바스크립트는 2진수, 8진수, 16진수를 표현하기 위한 데이터 타입을 제공하지 않기 때문에 이들 값을 참조하면 모두 10진수로 해석된다.var binary ..
5.1 값 (value)값(value): 표현식(expression)이 평가(evaluate) 되어 생성된 결과모든 값은 데이터 타입을 가지며, 메모리에 2진수, 비트의 나열로 저장된다.메모리에 저장된 값은 데이터 타입에 따라 다르게 해석된다.0100 0001은 아스키 코드로 숫자로는 65, 문자로는 'A'변수에는 '하나의 값'을 저장한다.값을 생성하는 방법은 다양하지만. 가장 기본적인 방법은 리터럴이다. 5.2 리터럴 (literal)리터럴(literal): 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법(notation)3;위 예제의 3은 단순 아라비아 숫자가 아니라 숫자 리터럴이다.자바스크립트 엔진은 런타임에 리터럴을 평가해 값을 생성한다.리터럴을 통해 다양한 data ..