본문 바로가기

Algorithm/코드 풀이

(183)
LeetCode: 40번 (Combination Sum II) [JAVA] 문제 링크 https://leetcode.com/problems/combination-sum-ii/ Combination Sum II - LeetCode Combination Sum II - Given a collection of candidate numbers (candidates) and a target number (target), find all unique combinations in candidates where the candidate numbers sum to target. Each number in candidates may only be used once in the combinati leetcode.com 풀이 전체적인 풀이 과정은 다음과 같다. 주어진 candidates 배열을 돌며..
LeetCode: 38번 (Count and Say) [JAVA] 문제 링크 https://leetcode.com/problems/count-and-say/ Count and Say - LeetCode Count and Say - The count-and-say sequence is a sequence of digit strings defined by the recursive formula: * countAndSay(1) = "1" * countAndSay(n) is the way you would "say" the digit string from countAndSay(n-1), which is then converted into a different leetcode.com 풀이 전체적인 풀이 과정은 다음과 같다. count-and-say 기본값으로 1짜리에 대해 "1..
백준: 21761번 (초직사각형) [JAVA] 문제 링크 https://www.acmicpc.net/problem/21761 21761번: 초직사각형 1차원 공간에서의 선분, 2차원 공간에서의 직사각형, 3차원 공간에서의 직육면체를 생각해 보자. 선분의 크기는 변수 $A$로, 직사각형의 크기는 두 개의 변수 $A$와 $B$로, 직육면체의 크기는 세 개 www.acmicpc.net 풀이 전체적인 풀이 과정은 다음과 같다. 각 A, B, C, D에 대한 좌표와, 각 카드 속 특정 좌표의 증가분을 저장할 long 타입 배열 생성 후 초기화 각 좌표 별 증가분을 내림차순으로 정렬하는 우선순위 큐들을 생성 후, 주어지는 카드들 속 증가분을 저장 K 번에 걸쳐 아래 작업을 반복 1) 각 좌표에 대한 우선 순위 큐에서 증가분을 꺼내 저장 (만약 없다면 0) 2)..
LeetCode: 34번 (Find First and Last Position of Element in Sorted Array) [JAVA] 문제 링크 https://leetcode.com/problems/find-first-and-last-position-of-element-in-sorted-array/ Find First and Last Position of Element in Sorted Array - LeetCode Find First and Last Position of Element in Sorted Array - Given an array of integers nums sorted in non-decreasing order, find the starting and ending position of a given target value. If target is not found in the array, return [-1, -1]...
백준: 14908번 (구두 수선공) [JAVA] 문제 링크 https://www.acmicpc.net/problem/14908 14908번: 구두 수선공 최소 보상금을 지불하는 작업 순서를 출력해야 한다. 모든 작업은 입력에서의 번호(1~N)로 표시해야 한다. 모든 정수는 한 줄로 표시해야 하며, 각 작업은 공백 문자로 구분한다. 여러 가지 해답 www.acmicpc.net 풀이 전체적인 풀이 과정은 다음과 같다. 주어진 작업에 대한 정보를 가진 하나의 클래스 생성 (작업 번호, 작업일, 보상 금액) 1) 추가로 이들 간의 비교 가능한 Comparable 구현 작업에 대한 개수 N 입력 받음 이후 N번에 걸쳐 받은 정보를 바탕으로 작업 클래스 생성해 우선순위 큐에 모두 저장 그 다음 우선순위 큐에서 작업들을 모두 하나씩 꺼내 작업 번호 출력 문제에서는..
백준: 16207번 (직사각형) [JAVA] 문제 링크 https://www.acmicpc.net/problem/16207 16207번: 직사각형 길이가 5, 6, 6, 6인 막대 중에서 길이가 6인 막대 하나의 길이를 5로 줄여 넓이가 30인 직사각형을 만들 수 있다. 그 다음, 길이가 3, 4, 4, 4인 막대 중에서 길이가 4인 막대 하나의 길이를 3으로 줄여 www.acmicpc.net 풀이 전체적인 풀이 과정은 다음과 같다. 막대 개수 N과 막대 길이들을 입력받아 배열(bars) 생성, dp용 배열(long 타입) 생성 막대 길이가 저장된 배열 bars를 내림차순 정렬 막대 길이의 맨 앞부터 막대가 4개 남을 때까지, 막대를 하나씩 제외 시켜가며 재귀 함수 기반 탐색 call 결과 반환 문제에서 요구하는 답은 결국 주어진 막대들에서 최대한..
LeetCode: 33번 (Search in Rotated Sorted Array) [JAVA] 문제 링크 https://leetcode.com/problems/search-in-rotated-sorted-array/ Search in Rotated Sorted Array - LeetCode Search in Rotated Sorted Array - There is an integer array nums sorted in ascending order (with distinct values). Prior to being passed to your function, nums is possibly rotated at an unknown pivot index k (1 nums[middle]) { return findPivot(nums, start, middle); } else if (nums[middle]..
LeetCode: 30번 (Substring with Concatenation of All Words) [JAVA] 문제 링크 https://leetcode.com/problems/substring-with-concatenation-of-all-words/ Substring with Concatenation of All Words - 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 풀이 전체적인 풀이 과정은 다음과 같다. 주어진 words 배열을 돌며 word의 인덱스화, 중복된 word 개수 카운트 이중 반복문(i=0 부터 word 길이만큼, j=i 부터 s의 길이만큼)을 진..