본문 바로가기

전체 글87

코딩테스트 스터디 2주차 [개념 과제] 1. 그래프를 표현하는 방식인 '인접 행렬'과 '인접 리스트'의 장단점을 메모리와 속도 관점에서 비교 설명하세요.'인접 행렬'은 모든 정점의 쌍을 저장하므로 메모리는 공간복잡도로 표시하면 O(N^2)으로 크고, 대신 두 정점의 연결여부는 O(1)의 속도(시간복잡도)로 확인할 수 있어 빠르다.그러나, '인접 리스트'는 각 정점에 연결된 간선만 저장하므로 O(N+M)의 메모리(공간복잡도)가 소요되어 매우 효율적이고, 한 정점에 연결된 정점 탐색이 O(deg(v))로 빠르다.그래서, 희소 그래프의 경우에는 '인접 리스트'가, 밀접 그래프의 경우에는 '인접 행렬'이 적합하다. 2. DFS는 스택(또는 재귀), BFS는 큐를 사용하는 이유를 각 자료구조의 특징과 탐색 방식의 관계를 중심으로 설명하세.. 2025. 11. 16.
카펫 [ 접근 전략 ]코테합 책을 보고 했다. 문제에서 주어진 것은 붉은색 격자의 개수, 흰색 격자의 개수, 카펫의 형태이다.또한 카펫의 가로 길이는 세로 길이와 같거나 세로 길이보다 길고, 가운데 흰색 격자가 있어야 해서 세로길이의 최솟값은 3이다.이후에.. 책에서 세로길이가 3부터 최대 정사각형 넓이를 B+Y의 제곱근까지 범위설정을 한 것..또한, 반복문 안에서 사각형의 조건을 만족하는지 체크하기 위해 넓이를 세로 길이로 나누어 떨어지는지 체크하는 부분.. [ 코테합 책 - 저자님 소스 ]*인용 : 코딩 테스트 합격자되기 - 박경록 class Solution { public int[] solution(int brown, int yellow) { // 1. 격자의 총 개수 ( 붉은색 격자 + 흰색 .. 2025. 10. 23.
이진 변환 반복하기 [ 접근 전략 ]책에서 문제 자체에 접근하는 방식을 보았다. 문제를 3단계로 나눠서 구현하는 것! [ 코테합 책 - 저자님 소스 ]*인용 : 코딩 테스트 합격자되기 - 박경록 class Solution { public int[] solution(String s) { // 1. 이진 변환 횟수를 저장하는 변수 int countTransform = 0; // 2. 제거된 모든 0의 개수를 저장하는 변수 int countZero = 0; // 3. s가 '1'이 아닌 동안 계속 반복 while (!s.equals("1") { // 4. 이진 변환 횟수를 1 증가 countTransform++; // 5. s에서 '0'의 개수를 세어 countZer.. 2025. 10. 23.
튜플 [ 접근 전략 ]코테합 책 554페이지 '문제 분석하고 풀기'의 저자님의 설명을 보고 했습니다. 저자님의 분석/설계는 원소 개수가 적은 집합을 기준으로 오름차순으로 정렬한 다음 이전 집합과 비교해서 중복된 원소를 제거하는 방식으로 푸는 것이었습니다. [ 코테합 책 - 저자님 소스 ]*인용 : 코딩 테스트 합격자되기 - 박경록 import java.util.Arrays;import java.util.HashSet; class Solution { public int[] solution(String s) { // 1. 문자열 s에서 대괄호를 제거하고 ","를 기준으로 나누어 배열에 저장한 후 길이 기준으로 오름차순 정렬 s = s.substring(0, s.length()-2).reaplce("}.. 2025. 10. 15.
가장 큰 수 [ 접근 전략 ]코테합 책 550페이지에 문제 분석하고 풀기를 보고, 제약조건의 numbers의 길이가 1 이상 100,000 이하이므로, 모든 조합을 다 구해보는 것은 시간 제한에 걸릴 수 있다고 나와있었다. [ 코테합 책 - 저자님 소스 ]*인용 : 코딩 테스트 합격자되기 - 박경록 import java.util.ArrayList; class Solution { public String solution(int[] numbers) { // 1. int형 정수 배열을 문자열로 바꾸어 list에 저장 ArrayList list = new ArrayList(); for (int number : numbers) { list.add(String.va.. 2025. 10. 14.
피로도 [ 접근 전략 ]책에서처럼, 현재 피로도가 들어가려는 던전의 최소 피로도보다 높아야 던전을 들어갈 수 있다. 또, 이후 해당 던전을 빠져나올 때 현재 피로도가 소모 피로도만큼 줄어든다. 이 두가지 고민이 하나의 유망함수로 해결할 수 있는데, 그것은 '현재 피로도가 최소 피로도보다 낮으면 백트래킹한다'는 것이다. [ 코테합 책 - 저자님 소스 ]*인용 : 코딩 테스트 합격자되기 - 박경록 class Solution { private static int answer; private static int[][] Dungeons; 최소피로도, 삭감피로도 private static boolean[] visited; // 백트래킹을 위한 DFS private static void backtrack(int .. 2025. 10. 6.