반응형

전체 글 146

[TypeScript] 배열에서 최소값(Min)과 최대값(Max) 구하는 방법

[TypeScript] 배열에서 최소값(Min)과 최대값(Max) 구하는 방법📌 TypeScript에서 배열의 최소값과 최대값 구하는 방법TypeScript에서 number[] 배열의 최소값과 최대값을 구하는 여러 가지 방법이 있습니다. 🚀✅ 1️⃣ Math.min() 및 Math.max() 사용 (Spread Operator 활용)가장 간단한 방법은 Math.min()과 Math.max()를 Spread Operator (...) 와 함께 사용하는 것입니다.const nums: number[] = [5, 2, 8, 1, 3];const minVal = Math.min(...nums);const maxVal = Math.max(...nums);console.log(minVal, maxVal); // ..

[Python] WebP를 PNG로 변환

🖼️ WebP를 PNG로 변환하는 간단한 파이썬 코드WebP 파일을 PNG로 변환할 일이 생겨서 급하게 파이썬 코드로 작성했다. 간단한 코드지만 필요할 때 유용할 것 같아 공유한다.🔍 WebP와 PNG란?✅ WebP란?WebP는 Google이 개발한 차세대 이미지 포맷으로, 높은 압축률과 우수한 품질이 특징이다. JPG, PNG보다 파일 크기가 작아 웹사이트 로딩 속도를 개선하는 데 유용하다. 하지만 일부 프로그램에서 지원이 제한적이라 PNG 변환이 필요할 때가 있다.✅ PNG란?PNG(Portable Network Graphics)는 무손실 압축을 지원하는 이미지 포맷으로, 배경 투명도를 유지할 수 있어 디자인 작업이나 웹 개발에서 자주 사용된다. 다만, JPG나 WebP보다 파일 크기가 크다는 단..

[LeetCode 135] Gas Station - 탐욕법(Greedy)으로 해결하기

[LeetCode] Gas Station - 탐욕법(Greedy)으로 해결하기📌 문제 설명LeetCode의 "Gas Station" 문제는 각 주유소에서 얻을 수 있는 연료(gas)와 이동에 필요한 연료(cost)가 주어질 때, 전체 주유소를 한 바퀴 돌 수 있는 출발점을 찾는 문제입니다.gas[i]: i번째 주유소에서 얻을 수 있는 연료량cost[i]: i번째 주유소에서 다음 주유소로 이동하는 데 필요한 연료량한 바퀴를 돌 수 있다면 출발 가능한 주유소의 인덱스 반환, 불가능하면 -1 반환해결 가능한 경우는 유일함이 보장됨📌 문제 해결 과정✅ 직관적인 접근 (O(N²) 비효율적 방법)처음에는 모든 주유소에서 출발을 시도하면서 한 바퀴를 도는 방식을 생각할 수 있습니다.export function c..

[LeetCode 134] Gas Station - 탐욕법(Greedy)으로 해결하기

[LeetCode] Gas Station - 탐욕법(Greedy)으로 해결하기📌 문제 설명LeetCode의 "Gas Station" 문제는 각 주유소에서 얻을 수 있는 연료(gas)와 이동에 필요한 연료(cost)가 주어질 때, 전체 주유소를 한 바퀴 돌 수 있는 출발점을 찾는 문제입니다.gas[i]: i번째 주유소에서 얻을 수 있는 연료량cost[i]: i번째 주유소에서 다음 주유소로 이동하는 데 필요한 연료량한 바퀴를 돌 수 있다면 출발 가능한 주유소의 인덱스 반환, 불가능하면 -1 반환해결 가능한 경우는 유일함이 보장됨📌 문제 해결 과정✅ 직관적인 접근 (O(N²) 비효율적 방법)처음에는 모든 주유소에서 출발을 시도하면서 한 바퀴를 도는 방식을 생각할 수 있습니다.export function c..

Algorithm/LeetCode 2025.03.13

[JavaScript/TypeScript] -0과 0의 차이와 처리 방법

[JavaScript/TypeScript] -0과 0의 차이와 처리 방법📌 -0과 0의 차이점JavaScript와 TypeScript에서는 -0과 0이 다르게 인식될 수 있습니다.🚀 -0이 발생하는 경우console.log(1 / Infinity); // 0console.log(1 / -Infinity); // -0console.log(-0 === 0); // true✅ -0과 0은 === 비교에서는 동일하지만, 내부적으로 다르게 저장됩니다.📌 Object.is()를 사용하면 구분 가능console.log(Object.is(-0, 0)); // false (-0과 0은 다름)console.log(Object.is(-0, -0)); // true✅ Object.is()를 사용하면 -0과 0을 구별..

[LeetCode 238] Product of Array Except Self - 나누기 없이 배열 곱셈 구하기

[LeetCode] Product of Array Except Self - 나누기 없이 배열 곱셈 구하기📌 문제 설명LeetCode의 "Product of Array Except Self" 문제는 각 요소를 제외한 나머지 요소들의 곱을 구하는 문제입니다.단, 나누기 연산(/)은 사용할 수 없음시간 복잡도는 O(N) 이어야 함추가 공간 O(1)만 사용 가능 (answer[] 외의 추가 배열은 금지)📌 문제 해결 과정✅ 잘못된 접근 (나누기 활용 방법)처음에는 전체 곱을 구한 후, 각 요소를 나누는 방식이 떠오를 수 있습니다.const totalProduct = nums.reduce((acc, val) => acc * val, 1);return nums.map(num => totalProduct / nu..

Algorithm/LeetCode 2025.03.12

[TypeScript] Map 사용법 정리 - 키-값 기반 데이터 관리

[TypeScript] Map 사용법 정리 - 키-값 기반 데이터 관리📌 TypeScript Map이란?Map은 키(Key)와 값(Value) 쌍을 저장할 수 있는 데이터 구조입니다. TypeScript에서 Map은 ES6 Map을 기반으로 하며, 빠른 검색, 추가, 삭제가 가능합니다.📌 1. Map 생성 및 기본 사용법const myMap = new Map();myMap.set("apple", 10);myMap.set("banana", 20);myMap.set("orange", 30);console.log(myMap);// Map { 'apple' => 10, 'banana' => 20, 'orange' => 30 }console.log(myMap.size); // 3✅ 키-값 쌍을 저장 가능✅ s..

[TypeScript] Set 사용법 정리 - 중복 없는 데이터 관리

[TypeScript] Set 사용법 정리 - 중복 없는 데이터 관리📌 TypeScript Set이란?Set은 중복을 허용하지 않는 고유한 값들의 집합을 저장하는 자료구조입니다.TypeScript에서 Set은 ES6 Set과 동일하게 동작하며, 유일한 값 저장, 빠른 검색 및 삭제에 적합합니다.📌 1. Set 생성 및 기본 사용법const mySet = new Set(); // 숫자형 Set 생성mySet.add(1);mySet.add(2);mySet.add(3);mySet.add(2); // 중복 추가 → 무시됨console.log(mySet); // Set { 1, 2, 3 }console.log(mySet.size); // 3✅ 중복된 값은 자동으로 제거됨✅ size 속성을 사용해 요소 개수 확..

[LeetCode 380] Insert Delete GetRandom O(1) - 효율적인 데이터 구조 구현 (Set vs. Array + Map)

[LeetCode] Insert Delete GetRandom O(1) - 효율적인 데이터 구조 구현 (Set vs. Array + Map)문제 설명LeetCode의 "Insert Delete GetRandom O(1)" 문제는 특정 연산을 O(1) 시간 내에 수행하는 데이터 구조를 구현하는 문제입니다.insert(val): 값이 없으면 추가하고 true 반환, 이미 존재하면 false 반환remove(val): 값이 있으면 제거하고 true 반환, 없으면 false 반환getRandom(): 저장된 값 중 무작위 요소를 O(1) 시간에 반환📌 문제를 풀면서 생각한 과정처음에는 Set을 사용하여 삽입과 삭제를 O(1)에 구현했지만, 무작위 요소 반환(getRandom())이 항상 첫 번째 요소만 선택되..

Algorithm/LeetCode 2025.03.11

[LeetCode 274] H-Index - 연구 논문의 영향력 측정 (탐욕법 + 정렬)

[LeetCode] H-Index - 연구 논문의 영향력 측정 (탐욕법 + 정렬)문제 설명LeetCode의 "H-Index" 문제는 연구자가 발표한 논문들의 인용 횟수를 분석하여 H-Index를 계산하는 문제입니다.연구자가 발표한 논문의 인용 횟수가 배열 citations로 주어집니다.연구자의 H-Index는 h 편의 논문이 최소 h번 이상 인용되었으며, 나머지 논문은 h번 이하로 인용된 경우의 최대값입니다.항상 H-Index를 계산할 수 있다고 가정합니다.📌 문제를 풀면서 생각한 과정처음에는 각 논문의 인용 횟수를 순차적으로 확인하며 H-Index를 계산하는 방법을 떠올렸습니다.하지만 효율적인 탐색이 필요하여 탐욕법(Greedy Algorithm)과 정렬을 활용한 최적화 방법을 도출했습니다.📌 H-..

Algorithm/LeetCode 2025.03.10
반응형