코딩테스트 15

백준 9084 : 동전

https://www.acmicpc.net/problem/9084 9084번: 동전 우리나라 화폐단위, 특히 동전에는 1원, 5원, 10원, 50원, 100원, 500원이 있다. 이 동전들로는 정수의 금액을 만들 수 있으며 그 방법도 여러 가지가 있을 수 있다. 예를 들어, 30원을 만들기 위해서는 www.acmicpc.net 여러 가지 종류의 동전을 이용해 금액 M을 만들 수 있는 모든 경우의 수를 구하는 문제입니다. dp[0] = 1; for(int i = 0 ; i < N; i++) { for(int j = coin[i]; j

코딩테스트 위한 SQL 문법 정리

SELECT [DISTINCT] COLUMN, COLUMN ... FROM TABLE WHERE 조건 GROUP BY {col_name | expr} [ASC | DESC] HAVING 조건 ORDER BY {col_name | expr} [ASC | DESC] LIMIT row_count COLUMN에 특정 조건을 통해 값을 다르게 할 수 있음 NULL이면 "NO NAME"으로 표시 -> IF(IS NULL(COLUMN), "NO NAME", COLUMN) = IFNULL(COLUMN, "NO NAME") WHERE WHERE 속성 BETWEEN 값1 AND 값2; WHERE 속성 IN (조건1, 조건2); // 조건1이거나 조건2 WHERE 속성 LIKE 'A_'; // 속성이 첫글자가 A이고 나머지..

코딩테스트 2021.10.09

다시 풀어볼 문제

평일에 못 푼 문제는 주말에 풀도록 표시 주말에도 못 풀면 월말에 풀도록 표시 주말에 풀리면 *으로 월말에 풀리면 **으로 3/12-13 https://programmers.co.kr/learn/courses/30/lessons/42895 https://programmers.co.kr/learn/courses/30/lessons/86052# https://programmers.co.kr/learn/courses/30/lessons/92344 * Greedy 구명보트 SQL 오랜 기간 보호한 동물 입양시각구하기(1) 입양시간구하기(2) Two pointer 보석쇼핑 binary Search 징검다리 건너기 완탐 외벽 점검 성냥개비 Tree 이진검색트리 그 외 호텔 방 배정 **

코딩테스트 2021.10.07

백준 10942 : 팰린드롬?

https://www.acmicpc.net/problem/10942 10942번: 팰린드롬? 총 M개의 줄에 걸쳐 홍준이의 질문에 대한 명우의 답을 입력으로 주어진 순서에 따라서 출력한다. 팰린드롬인 경우에는 1, 아닌 경우에는 0을 출력한다. www.acmicpc.net 접근방법 이 문제는 DP를 사용하였습니다. 먼저 팰린드롬은 뒤집어도 같은 것을 말합니다. 이 문제에 DP를 적용하기 위해서는 다음과 같은 생각을 해야 합니다. 1 2 1 이라는 숫자열이 있습니다. 이 문자열은 팰린드롬입니다. 이 문자열에 앞 뒤로 같은 숫자인 2를 추가해 보면 2 1 2 1 2 처럼 팰린드롬이 됩니다. 즉, 팰린드롬에 같은 숫자를 앞뒤로 추가하면 팰린드롬이 되는 겁니다. 이를 이용해 보겠습니다. 1 2 1 1 1 1, ..

투 포인터(Two Pointer)

개념 1차원 배열에서 두 개의 포인터를 이용해서 하나의 포인터를 이용해서 탐색할 때 보다 시간 복잡도를 줄일 수 있는 알고리즘입니다. 설명 https://www.acmicpc.net/problem/2003 2003번: 수들의 합 2 첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. www.acmicpc.net 해당 문제를 가지고 설명하겠습니다. 이 문제는 수열의 연속된 숫자의 합이 일정한 수 M이 되는 경우의 수를 물어보는 문제입니다. 문제를 해결하기 위해서 보통 드는 생각은 수열의 첫 번째 숫자부터 그다음 숫자들을 더해 나..

코딩테스트 2021.07.09

백준 1981 : 배열에서 이동

https://www.acmicpc.net/problem/1981 1981번: 배열에서 이동 n×n짜리의 배열이 하나 있다. 이 배열의 (1, 1)에서 (n, n)까지 이동하려고 한다. 이동할 때는 상, 하, 좌, 우의 네 인접한 칸으로만 이동할 수 있다. 이와 같이 이동하다 보면, 배열에서 몇 개의 수를 www.acmicpc.net 접근방법 이 문제에서는 이분탐색 + BFS를 이용하였습니다. 제 풀이는 다음과 같은 3단계로 구성되었습니다. 최댓값과 최솟값의 차이를 이분탐색을 이용하여 구합니다. 해당 차이를 가진 모든 경우의 수를 구합니다. 각 경우의 수마다 BFS를 통해 (1, 1)에서 (n, n)까지 이동할 수 있는지 체크합니다. 순서 배열의 수를 검사하여 전체 최댓값과 최솟값을 구합니다. 0 ~ (..

백준 1939 : 중량제한

https://www.acmicpc.net/problem/1939 1939번: 중량제한 첫째 줄에 N, M(1≤M≤100,000)이 주어진다. 다음 M개의 줄에는 다리에 대한 정보를 나타내는 세 정수 A, B(1≤A, B≤N), C(1≤C≤1,000,000,000)가 주어진다. 이는 A번 섬과 B번 섬 사이에 중량제한이 C인 다리 www.acmicpc.net 접근방법 해당 문제에 이분탐색을 적용하여 해결하겠습니다. 이동하는 물품들의 중량을 정해놓고 가능한지 검사해나가면 중량의 최댓값을 구할 수 있습니다. 순서 각 다리의 중량 제한의 최댓값을 구한다. low = 0, high = 중량의 최댓값으로 설정 low와 high을 가지고 이분탐색 mid = (high + low) / 2 + 1 mid 중량으로 다리..