본문 바로가기

HashMap

(3)
[Leetcode] 1번 - 두 수의 합 1. 문제 파악문제 링크: https://leetcode.com/problems/two-sum/description/문제 정의: 배열의 요소중 두개의 합이 target인 인덱스 두개를 반환해라. 답은 하나이고 반환하는 인덱스의 순서는 상관없다. 단, 배열의 동일한 요소의 합은 포함되지않는다.문제의 제약 파악 (입력값 크기, 상수 조건) 2 2. 문제 풀이1. 브루트 포스로 문제 풀이 도출배열을 순회하면서 순차적으로 요소 하나를 지정1번에서 지정한 요소를 제외하고, 배열을 순회하면서 순차적으로 나머지 요소를 지정지정한 두 요소의 합이 target과 동일한지 확인target과 동일하다면 두 요소의 인덱스를 반환, 동일하지 않다면 순회for (int i = 0; i 두개의 요소를 찾기 위해서 이중 순회를 해..
[Leetcode] 347번 - Top K Frequent Elements (using Array) 1. 문제 파악문제 링크: https://leetcode.com/problems/top-k-frequent-elements/문제: 주어진 배열의 요소값중에서 빈도수가 가장 높은 요소를 k개 저장한 배열을 반환해라.시간복잡도 파악: 입력크기가 100000이라서 O(N\logN) 이내어야한다.문제 나눠서 정의배열을 순차적으로 조회하면서 요소별로 빈도수 연산 -> 가장 빈도수가 큰 요소들을 반환해야하므로 동적으로 빈도수 연산을 하지못한다. 따라서 각 요소별로 모든 빈도수를 계산하고 key, value를 상요하는 자료구조에 저장해야한다.자료구조를 빈도수 크기로 정렬한다. (단, 빈도수가 중복되는 요소값이 존재한다.)정렬된 자료구조에서 k개 만큼 값을 가져와서 반환 배열에 저장 2. 핵심 문제 풀이 도출배열을 순..
[LeetCode] 3번 – 중복 없는 가장 긴 부분 문자열 (Java, 슬라이딩 윈도우 풀이) 1. 문제 파악해당 문제 유형은 단순히 구현이나 자료구조와 알고리즘을 아는 것보다 동작을 추상화해서 수식 또는 알고리즘으로 모델링하는 것이 핵심이다.문제 링크: https://leetcode.com/problems/longest-substring-without-repeating-characters문제 정의:주어진 문자열의 substring에서 알파벳이 중복되지 않는 문자열 찾기중복되지 않는 substring 중에서 제일 긴거를 찾기문제의 제약 파악 (입력값 크기, 상수 조건)0 2. 문제 풀이1. 브루트 포스로 문제 풀이 도출중복 문자가 없는 substring을 찾을려면, 중첩 반복문으로 하나의 문자를 지정하고 나머지 문자들을 확인해야한다. 그러면 n + n-1 + n-2 + ... = n(n+1)/2 ..