[LeetCode] 77. Combinations - 파이썬(Python)
·
Solving Algorithm Problem/LeetCode
문제 링크 : https://leetcode.com/problems/combinations/ Combinations - 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 유형 : 백트래킹(BackTracking) 문제 설명 두 개의 정수 n, k가 주어질 때 1부터 n까지의 정수들에게 k개를 뽑아 만들 수 있는 모든 조합을 return 하는 문제이다. Example 1) Input: n = 4, k = 2 Output: [[2,4],[3,4],[2,3],[1,2],..
[LeetCode] 46. Permutations - 파이썬(Python)
·
Solving Algorithm Problem/LeetCode
문제 링크 : https://leetcode.com/problems/permutations/ Permutations - 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 유형 : 백트래킹(BackTracking) 문제 설명 중복되지 않는 정수들이 담긴 배열 nums가 주어질 때, 만들 수 있는 모든 순열을 return하는 문제이다. 임의의 순서로 return하면 된다. Example 1) Input: nums = [1,2,3] Output: [[1,2,3],[1,3..
[LeetCode] 78. Subsets - 파이썬(Python)
·
Solving Algorithm Problem/LeetCode
문제 링크 : https://leetcode.com/problems/subsets/ Subsets - 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 유형 : 백트래킹(BackTracking) 문제 설명 중복되지 않는 숫자들이 담긴 배열 nums가 주어질 때, nums의 요소들로 만들 수 있는 모든 하위 집합을 return 하는 문제이다. 모든 하위 집합을 중복없이 임의의 순서로 return 하면 된다. Example 1) Input: nums = [1,2,3] ..
[Java] GC란?
·
Programming language/Java
GC(Carbage Collection)란? 가비지 컬렉션(Garbage Collection) 가비지 컬렉션(Garbage Collection)은 프로그램이 동적으로 할당했던 메모리 영역 중에서 필요 없게 된 영역을 탐지하여 자동으로 해제하는 기능이다. 가비지 컬렉션은 자바만의 기능이 아니다. 개발자가 힙을 사용할 수 있는 만큼 자유롭게 사용하고, 더 이상 사용되지 않는 객체들은 가비지 컬렉션을 담당하는 프로세스가 자동으로 메모리에서 제거하도록 하는 것이 가비지 컬렉션의 기본 개념이다. 가비지 컬렉터(Garbage Collector) 가비지 컬렉터(Garbage Collector)는 가비지 컬렉션을 수행하는 담당자이다. JVM에는 가비지 컬렉션 알고리즘을 수행하는 가비지 컬렉터가 있다. 힙 메모리에 객..
[Java] JVM, JRE, JDK
·
Programming language/Java
JVM Java Virtual Machine (자바 가상 머신) JVM은 자바 바이트코드를 실행할 수 있는 주체이다. Java로 작성된 프로그램은 운영체제에 맞는 실행 파일로 컴파일되는 것이 아닌 .class 라는 확장자를 가진 파일(자바 바이트코드)로 변환된다. 변환된 자바 바이트코드는 JVM 위에서 작동이 된다. 이때, 미리 설치된 JVM 은 운영체제 별로 동일하게 작동하도록 .class 파일에게 환경을 제공한다. JRE Java SE Runtime Environment (자바 런타임 환경) JRE는 컴파일 된 Java 프로그램(자바 바이트코드, class 파일)을 실행하는데 필요한 패키지이다. JRE는 JVM을 포함하고 있다. JVM은 우리가 작성한 코드를 기반으로 한 .class 확장자를 가진 클..
[LeetCode] 17. Letter Combinations of a Phone Number - 파이썬(Python)
·
Solving Algorithm Problem/LeetCode
문제 링크 : https://leetcode.com/problems/letter-combinations-of-a-phone-number/ Letter Combinations of a Phone 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 유형 : 백트래킹(BackTracking) 문제 설명 숫자를 포함하는 문자열인 digits이 입력으로 주어졌을 때, Phone Keypad를 통해 해당 digits으로 만들 수 있는 모든 문자 조합을 retur..
[Algorithm] 백트래킹(BackTracking)
·
Computer Science/Algorithm
백트래킹(BackTracking)은 현재 상태에서 가능한 모든 후보군을 따라 들어가며 해결책에 대한 후보를 구축해 나아가다 가능성이 없다고 판단되면 즉시 후보를 포기하면서 정답을 찾아가는 범용적인 알고리즘이다. BackTracking vs Dynamic Programming 백트래킹과 동적 계획법은 재귀를 통해 문제를 해결한다는 공통점이 있지만, 근본적인 차이점을 가지고 있다. 백트래킹(Backtracking) 백트래킹은 현재 상태에서 가능한 모든 후보군(Decision Space)를 하나씩 살펴가면서 해가 될 가능성이 있으면 후보를 구축하고, 해가 될 가능성이 없다면 즉시 후보를 포기하면서 해를 찾아나가는 방식이다. 이때, 해가 될 가능성이 있으면 유망하다(promising)고 하며, 유망하지 않은 노..
[Java] JIT 컴파일러란?
·
Programming language/Java
JIT 컴파일(just-in-time compilation) 또는 동적 번역(dynamic translation)은 프로그램을 실제 실행하는 시점에 기계어로 번역하는 컴파일 기법이다. 컴파일러 vs 인터프리터 컴파일러와 인터프리터 모두 high-level language를 machine language로 번역한다. 컴파일러는 소스 코드(high-level language로 작성) 전체를 링커 등을 통해 한번에 번역하여 목적 파일(기계어로 작성)로 만들어 메모리상에 적재한다. 인터프리터는 소스 코드를 한 행씩 중간 코드로 번역 후 실행한다. 컴파일러는 소스코드 전체를 컴퓨터 프로세서가 실행할 수 있도록 바로 기계어로 변환한다. 인터프리터는 고레벨 언어를 중간 코드(intermediate code)로 변환하..
[Algorithm] 동적 계획법(Dynamic Programming)
·
Computer Science/Algorithm
동적 계획법(Dynamic Programming)이란 복잡한 문제를 간단한 여러 개의 문제로 나누어 푸는 방법을 말한다. 특정한 알고리즘이 아닌 하나의 문제 해결 패러다임으로 볼 수 있다. Dynamic Programming의 조건 분할 가능 큰 문제를 작은 문제로 나눌 수 있을 때 (Problem → Subproblems) 부분 문제 반복(Overlapping Subproblems) Subproblem들이 겹칠 때 → memoization을 통해 필요한 연산 수를 줄일 수 있음 최적 부분 구조(Optimal Substructure) Subproblems의 Solution으로 더 큰 규모의 Problem의 Solution을 구할 수 있을 때 대표 문제 : 피보나치 수열 Fibonacci 📌 Naive R..