KDHzoot's Github

Code for study, project, etc

자세히보기

알고리즘 32

[백준 9012] 괄호

문제 링크 : https://www.acmicpc.net/problem/9012 9012번: 괄호 문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)�� www.acmicpc.net 올바른 괄호 쌍 문자열을 하나 보자 ( ( ) ( ) ) ( ( ( ) ) ) VPS일 경우에 앞에 등장하는 작은 괄호쌍부터 하나씩 제거해 나갈 수 있다. ( ( ) ( ) ) ( ( ( ) ) ) ( ( ) ) ( ( ( ) ) ) ( ) ( ( ( ) ) ) ( ( ( ) ) ) ( ( ) ) ( ) 빨간색 괄호쌍은 제거되는 괄호쌍이다 사실 맨 ..

알고리즘/PS 2020.08.14

[백준 17608] 막대기

문제 링크 : https://www.acmicpc.net/problem/17608 17608번: 막대기 아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로 www.acmicpc.net 스택을 사용하는 문제이다. 막대기가 다음과 같을 때 6 9 7 6 4 6 오른쪽에서 보이는 막대기는 다음과 같다. 6 9 7 6 4 6 막대기가 다음과 같을 때는 9 10 8 2 4 5 3 1 오른쪽에서 보이는 막대기는 다음과 같다. 9 10 8 2 4 5 3 1 막대기가 오른쪽에서 보이는지 결정하는 조건은 딱 한가지이다. 오른쪽에 자신보다 큰 막대가 없으면 오른쪽에서 보이는 막대가 된다..

알고리즘/PS 2020.08.12

[백준 1085] 직사각형에서 탈출

문제 링크 : https://www.acmicpc.net/problem/1085 1085번: 직사각형에서 탈출 첫째 줄에 x y w h가 주어진다. w와 h는 1,000보다 작거나 같은 자연수이고, x는 1보다 크거나 같고, w-1보다 작거나 같은 자연수이고, y는 1보다 크거나 같고, h-1보다 작거나 같은 자연수이다. www.acmicpc.net #include #include #define n_ 1005 using namespace std; int n, m; int arr[n_]; char str[n_]; int main(void) { int x, y, w, h; cin >> x >> y >> w >> h; int res = min(x, y); res = min(res, min(w - x, h - ..

알고리즘/PS 2020.08.04

[백준 17419] 비트가 넘쳐흘러

문제 링크 : https://www.acmicpc.net/problem/17419 17419번: 비트가 넘쳐흘러 🎶 DJ욱제는 비트에 몸을 맡기는 중이다. 🎶 DJ욱제는 비트에 심취한 나머지, 비트를 비틀어 제껴버리는 문제를 내 버렸다! N자리 이진수 K가 주어진다. K가 0이 아닐 때까지 아래의 연산을 적용� www.acmicpc.net K = K-(K&((~K)+1)) 문제에 나오는 연산을 10110을 대상으로 한번 실행해보자 ~K 는 01001 여기에 1을 더하면 01010 기존의 K와 &연산을 하면 00010 기존에 K에서 이를 빼면 10100 연산을 여러번 반복해보면 알겠지만 위 식은 K라는 이진수에서 마지막 1을 빼는 연산이다 팬윅트리에서 사용되기도 한다. 결국 입력에서 1의 개수를 세는 문제..

알고리즘/PS 2020.08.03

[백준 2193] 이친수

문제 링크 : https://www.acmicpc.net/problem/2193 2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않 www.acmicpc.net 길이가 1인 이친수는 한가지이다. 1 길이가 2인 이친수도 한가지이다. 10 길이가 3인 이친수는 두가지이다. 100 101 길이가 4인 이친수는 세가지이다. 1000 1001 1010 길이가 5인 이친수는 다섯가지이다. 10000 10001 10010 10100 10101 ... 계속 해보면 알겠지만 n-1번째 이친수의 갯수와 n번째 이친수의 갯수에 연관성이 존재한다. ..

알고리즘/PS 2020.08.01

[백준 14697] 방 배정하기

문제 링크 : https://www.acmicpc.net/problem/14697 14697번: 방 배정하기 정보 초등학교 6학년 여학생들은 단체로 2박 3일 수학여행을 가기로 했다. 학생들이 묵을 숙소에는 방의 정원(방 안에 있는 침대 수)을 기준으로 세 종류의 방이 있으며, 같은 종류의 방들이 여러 www.acmicpc.net 입력이 1 2 5 50이라고 가정해보자 먼저 확실하게 알 수 있는 것은 전체 인원이 1명, 2명, 5명일 때 빈 침대 없이 배정 가능하다는 점이다. 그리고 2명일 때 완벽하게 배정이 가능하기 때문에 2명에 1명 2명 5명을 더한 3 4 7도 마찬가지로 빈 침대 없이 배정 가능하다. 3 4 7 에서 위의 과정을 계속 반복하면, 12, 17 ... 등등 다양한 수에 대해서 빈침대 ..

알고리즘/PS 2020.08.01

[백준 17404] RGB거리 2

문제 링크 : https://www.acmicpc.net/problem/17404 17404번: RGB거리 2 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net RGB거리 1과 달라진 점은 집들이 서로 원형으로 이어져 있어서 점화식이 시작하는 초기 조건을 잡을 수 없다는 것이다. 확실한 것은 첫 번째 집이 적어도 RGB 세 가지 색 중 하나로 칠해져 있다는 것이다. 각각의 색을 한번에 처리하는 것이 아니라 따로따로 구한다면 생각보다 쉽게 처리할 수 있다. 1. 첫번째 집을 R로 칠한다고 가정했을 때 최소 비용 2..

알고리즘/PS 2020.07.29

[백준 2293] 동전 1

문제 링크 : https://www.acmicpc.net/problem/2293 2293번: 동전 1 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. www.acmicpc.net 당연히 모든 경우의 수를 정말 탐색하면 시간 초과가 난다. 그래서 동적 계획법으로 문제를 해결하기로 했다. 동적 계획법에 있어서 가장 중요한 것은 점화식의 기준이 되는 변수를 잡는 것이다. 이 문제에서는 특이하게 기준 되는 변수가 동전의 개수가 아니라 금액이다. 예시를 통해 알아보자 3개의 동전 1,2,5원을 사용해서 5원을 만드는 경우를 보자 5원을 세가지 동전으로 구성하는 것이 아..

알고리즘/PS 2020.07.29

[백준 14469] 소가 길을 건너간 이유 3

문제 링크 : https://www.acmicpc.net/problem/14469 14469번: 소가 길을 건너간 이유 3 문제 이웃 농장의 소가 길을 마구잡이로 건너는 것에 진절머리가 난 존은 극단의 결정을 내린다. 농장 둘레에 매우 큰 울타리를 짓는 것이다. 이렇게 하면 근처 농장 출신의 소가 들어올 일이 거 www.acmicpc.net 먼저 소들이 검문소에 오는 순서대로 정렬해준다. algorithm 헤더에 있는 sort 함수를 사용했는데 sort 함수로 구조체를 정렬하는 방법은 아래 글에 설명되어 있다. https://tunafish78.tistory.com/81?category=880339 [STL] algorithm sort 함수 사용법 정렬 PS를 하다보면 데이터를 정렬한 뒤 다뤄야 하는 상..

알고리즘/PS 2020.07.29

[백준 10814] 나이순 정렬

문제 링크 : https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 � www.acmicpc.net sort 함수를 사용하면 데이터를 정렬할 수 있다. 문제는 데이터가 두개의 값을 기준으로 분류해야 된다는 것이다. 첫번째는 나이, 두번째는 입력 순서 사실 이건 알고리즘 문제라기보다 문법 문제이다. algorithm헤더에 있는 sort함수를 사용함에 있어서 유동적으로 활용할 수 있어야 풀 수 있다. 코드를 읽기전 sort함수의 사용법에 대한 아래 글 부터 읽어보기를 바란다. https..

알고리즘/PS 2020.07.17