호우동의 개발일지

Today :

article thumbnail
[C++] 백준/BOJ - 16928 : 뱀과 사다리 게임
Algorithm/BOJ 2023. 3. 25. 18:11

문제 이해 단계 https://www.acmicpc.net/problem/16928 16928번: 뱀과 사다리 게임 첫째 줄에 게임판에 있는 사다리의 수 N(1 ≤ N ≤ 15)과 뱀의 수 M(1 ≤ M ≤ 15)이 주어진다. 둘째 줄부터 N개의 줄에는 사다리의 정보를 의미하는 x, y (x < y)가 주어진다. x번 칸에 도착하면, y번 칸으 www.acmicpc.net 10x10 짜리 맵에 사다리와 뱀과 맵이 있다. 그리고 플레이어는 1~6까지 적혀있는 주사위로 움직인다. 목표는 1에서 100까지 움직이는 것이다. 주사위 결과가 100칸을 넘어서 움직이는 것이라면 이동할 수 없다. 사다리와 뱀은 둘 다 점프 개념으로 사다리는 뒤에서 앞으로, 뱀은 앞에서 뒤로 이동하는 개념이다. N개의 사다리와 M개의..

[C++] 백준/BOJ - 20955 : 민서의 응급 수술
Algorithm/BOJ 2023. 3. 24. 21:44

문제 이해 단계 https://www.acmicpc.net/problem/20955 20955번: 민서의 응급 수술 민서는 강원대학교 컴퓨터공학과의 신임 교수이다. 그녀가 저술한 효율적인 택배 배달을 위한 최적 경로 설계에 관한 연구 논문은 아직도 널리 인용되고 있다. 오늘도 열심히 강의를 하던 민서 www.acmicpc.net 뉴런(노드) N개와 시냅스(간선) M개가 들어온다. 이후 M 줄에 걸쳐 연결된 두 뉴런의 정보가 들어온다. 만들어야 하는 것은 하나로 연결된 트리, 즉 사이클이 존재하지 않아야 한다. 만약 사이클이 존재한다면 그 사이클을 끊어야 한다. 이러한 조건일 때 모든 뉴런을 하나의 연결된 트리로 만들 때 필요한 최소 연산 횟수를 구하는 문제 문제 접근 단계 문제에서 대놓고 뉴런과 시냅스,..

[C++] 백준/BOJ - 18866 : 젊은 날의 생이여
Algorithm/BOJ 2023. 3. 24. 17:34

문제 이해 단계 https://www.acmicpc.net/problem/18866 18866번: 젊은 날의 생이여 욱제의 젊은 날이 될 수 있는 최대 기간, 즉 문제의 조건을 만족할 수 있는 최대의 1 ≤ K > N; for(int i = 0; i > v1 >> v2; v[i][0]= v1; v[i][1]= v2; } int young[N][2], old[N][2]; // 젊은날, 늙은날 최대 최소 정보 int max_happy = 0; int min_happy = INT32_MAX; int max_tired = 0; int min_tired = INT32_MAX; // 젊은 날은 1부터 ~ K까지 for(int i = 0; i < N; i++){ // ..

article thumbnail
[C++] 백준/BOJ - 16398 : 행성 연결
Algorithm/BOJ 2023. 3. 24. 13:55

문제 이해 단계 https://www.acmicpc.net/problem/16398 16398번: 행성 연결 홍익 제국의 중심은 행성 T이다. 제국의 황제 윤석이는 행성 T에서 제국을 효과적으로 통치하기 위해서, N개의 행성 간에 플로우를 설치하려고 한다. 두 행성 간에 플로우를 설치하면 제국의 함 www.acmicpc.net 행성의 수 N개가 입력으로 들어온다. 이후 행성 간 관리 비용이 NxN 행렬로 들어오는데, 각각 C_ij로 i와 j 사이의 비용을 뜻한다. (i = j인 경우 0) 행성 N개를 모두 연결하는데 드는 비용을 최소화할 때, 최소화한 비용을 구하는 문제 문제 접근 단계 조건부터 보자면 행성의 수 N은 최대 1000개까지이다. 즉 NxN 행렬은 1,000,000개까지 생성될 수 있다. 그..

article thumbnail
[C++] 백준 4485 - 녹색 옷 입은 애가 젤다지?
Algorithm/BOJ 2023. 3. 23. 16:52

문제 이해 단계 https://www.acmicpc.net/problem/4485 4485번: 녹색 옷 입은 애가 젤다지? 젤다의 전설 게임에서 화폐의 단위는 루피(rupee)다. 그런데 간혹 '도둑루피'라 불리는 검정색 루피도 존재하는데, 이걸 획득하면 오히려 소지한 루피가 감소하게 된다! 젤다의 전설 시리즈의 주 www.acmicpc.net NxN 2차원 맵이 주어진다. 각 칸에는 0 ~ 9까지에 정수가 적혀있다. 그리고 각 칸을 밟을 때마다 해당 점수를 얻는다. 점수를 최대한 적게 얻으면서 (0,0)에서 (N-1, N-1)까지 이동하는 것이 목표이다. 플레이어는 상하좌우로 움직일 수 있을 때, 최소 점수를 구하는 것이 문제이다. 문제 접근 단계 문제 조건부터 살펴보면 맵의 크기 N은 최대 125, ..

article thumbnail
[C++] 백준 16168 - 퍼레이드 ( 직관적인 DFS 풀이 )
Algorithm/BOJ 2023. 3. 22. 15:30

문제 이해 단계 https://www.acmicpc.net/problem/16168 16168번: 퍼레이드 첫 번째 줄에 지점의 개수 V, 연결 구간의 개수 E가 주어진다. (1 ≤ V ≤ E ≤ 3000) 이후 E개의 줄에 걸쳐 각 연결 구간이 연결하는 두 지점의 번호 Va, Vb가 공백을 사이에 두고 주어진다. (1 ≤ Va, www.acmicpc.net 노드(지점)의 개수 V와 간선(연결 구간) E가 입력으로 들어온다. 이후, 다음 줄에 V1과 V2가 M개가 들어온다. 해당 입력이 들어올 때, 노드는 중복해서 지나갈 수 있고, 간선은 한 번밖에 지나가지 못한다. 모든 간선을 지날 수 있을지 없을지에 판단하고, 가능하면 "YES" 없으면 "NO"를 출력해라 문제 접근 단계 문제 자체는 굉장히 심플하다..

[C++] 백준 15961 - 회전초밥
Algorithm/BOJ 2023. 3. 22. 00:09

문제 이해 단계 https://www.acmicpc.net/problem/15961 15961번: 회전 초밥 첫 번째 줄에는 회전 초밥 벨트에 놓인 접시의 수 N, 초밥의 가짓수 d, 연속해서 먹는 접시의 수 k, 쿠폰 번호 c가 각각 하나의 빈 칸을 사이에 두고 주어진다. 단, 2 ≤ N ≤ 3,000,000, 2 ≤ d ≤ 3,000, 2 www.acmicpc.net 회전 초밥의 개수 N, 회전 초밥의 종류 d, 연속해서 먹을 수 있는 개수 k, 쿠폰 번호 c가 들어온다. 여기서 회전 초밥은 원형으로 시계 방향으로 돌아가는데, 종류가 d개만큼 있다는 것을 의미한다. 시계 방향으로 돌아가는 회전 초밥을 연속해서 k개 먹을 때, 최대한 많은 종류를 먹는 것이 목표이다. 이때, 먹은 k개의 종류 중 쿠폰 ..

article thumbnail
[C++] 백준 5639 - 이진 검색 트리 ( 2번째 다른 풀이 )
Algorithm/BOJ 2023. 3. 21. 15:36

문제 이해 단계 예전에 풀었던 문제다.. 근데 못 풀었다. 그때는 3일 걸려서 풀긴 했었는데, 이번에는 풀지도 못했다. 블로그까지 써가면서 풀자고 했는데 못 풀었다. 예전에 했던 풀이는 아래 링크를 걸어두겠다. 문제에 대한 설명 같은 것은 아래 링크를 참고해 주길 바란다. https://howudong.tistory.com/17 [C++] 백준 5639 - 이진 검색 트리 문제 이해 단계 문제 이진 검색 트리는 다음과 같은 세 가지 조건을 만족하는 이진 트리이다. 노드의 왼쪽 서브트리에 있는 모든 노드의 키는 노드의 키보다 작다. 노드의 오른쪽 서브트리에 있 howudong.tistory.com 문제 접근 단계 두 번째 풀이 방법은 첫 번째 방법보다는 좀 더 논리적인 방법이라고 할 수 있다. 첫 번째 방..