티스토리

나침반
검색하기

블로그 홈

나침반

jh4995.tistory.com/m

C0MPAS 님의 블로그입니다.

구독자
0
방명록 방문하기

주요 글 목록

  • [C] 백준 - 1759번: 암호 만들기 11월 23일(목) - 브루트포스 (1759번) 1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 최초 생각 정리 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 문제점 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 풀이 (풀이출처 -> https://juintination.tistory.com/26) #define _CRT_SECURE_N.. 공감수 0 댓글수 0 2023. 11. 23.
  • [C] 백준 - 2212번: 센서 11월 22일(수) - 그리디 알고리즘 (2212번) 2212번: 센서 첫째 줄에 센서의 개수 N(1 ≤ N ≤ 10,000), 둘째 줄에 집중국의 개수 K(1 ≤ K ≤ 1000)가 주어진다. 셋째 줄에는 N개의 센서의 좌표가 한 개의 정수로 N개 주어진다. 각 좌표 사이에는 빈 칸이 하나 있 www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 최초 생각 정리 - 예제2의 경우 -> N = 10, K = 5 1) 10개의 센서의 좌표가 입력되고나면 2) 오름차순으로 정렬한다 1) 20 3 14 6 7 8 18 10 12 15 2) 3 6 7 8 10 12 14 15 18 20 - 3) 그리고 이웃한 2개의 "센서좌표사이의 거리"를 구한.. 공감수 0 댓글수 0 2023. 11. 22.
  • [C] 백준 - 1043번: 거짓말 11월 21일(화) - 자료 구조 (1043번) 1043번: 거짓말 지민이는 파티에 가서 이야기 하는 것을 좋아한다. 파티에 갈 때마다, 지민이는 지민이가 가장 좋아하는 이야기를 한다. 지민이는 그 이야기를 말할 때, 있는 그대로 진실로 말하거나 엄청나게 www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 최초 생각 정리 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 문제점 // 수정 전 int main(void) { ... if (num_truth == 0) { printf("%d", 0); return 0; } else { for (int i = 0; i < M; i++) { for (in.. 공감수 0 댓글수 0 2023. 11. 21.
  • [C] 백준 - 1520번: 내리막 길 11월 20일(월) - 다이나믹 프로그래밍 (1520번) 1520번: 내리막 길 여행을 떠난 세준이는 지도를 하나 구하였다. 이 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 한 칸은 한 지점을 나타내는데 각 칸에는 그 지점의 높이가 쓰여 있으 www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 최초 생각 정리 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 문제점 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 풀이 #define _CRT_SECURE_NO_WARNINGS #pragma warning(disable: 4996).. 공감수 0 댓글수 2 2023. 11. 20.
  • [C] 백준 - 2133번: 타일 채우기 11월 13일(월) - 다이나믹 프로그래밍 (2133번) 2133번: 타일 채우기 3×N 크기의 벽을 2×1, 1×2 크기의 타일로 채우는 경우의 수를 구해보자. www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 최초 생각 정리 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 문제점 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 풀이 #define _CRT_SECURE_NO_WARNINGS #pragma warning(disable: 4996) #include int dp[31]; int main(void) { int N; scanf("%d", &N.. 공감수 0 댓글수 1 2023. 11. 13.
  • [C] 백준 - 2437번: 저울 11월 8일(수) - 그리디 알고리즘 (2437번) 2437번: 저울 하나의 양팔 저울을 이용하여 물건의 무게를 측정하려고 한다. 이 저울의 양 팔의 끝에는 물건이나 추를 올려놓는 접시가 달려 있고, 양팔의 길이는 같다. 또한, 저울의 한쪽에는 저울추들만 놓 www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 최초 생각 정리 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 문제점 // 수정 전 int main(void) { ... int impossible = 1; int possible = 0; for (int i = 0; i < N; i++) { possible = possible + wei.. 공감수 0 댓글수 0 2023. 11. 8.
  • [C] 백준 - 1717번: 집합의 표현 11월 7일(화) - 자료 구조 (1717번) 1717번: 집합의 표현 초기에 $n+1$개의 집합 $\{0\}, \{1\}, \{2\}, \dots , \{n\}$이 있다. 여기에 합집합 연산과, 두 원소가 같은 집합에 포함되어 있는지를 확인하는 연산을 수행하려고 한다. 집합을 표현하는 프로그램을 작 www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 최초 생각 정리 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 문제점 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 풀이 #define _CRT_SECURE_NO_WARNINGS #pragma warn.. 공감수 0 댓글수 0 2023. 11. 7.
  • [C] 백준 - 14501번: 퇴사 11월 6일(월) - 다이나믹 프로그래밍 (14501번) 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 최초 생각 정리 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 문제점 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 풀이 #define _CRT_SECURE_NO_WARNINGS #pragma warning(disable: 4996) #include int time[16]; int pay[16]; int dp[16]; int MAX(int x, int y) { ret.. 공감수 0 댓글수 0 2023. 11. 6.
  • [C] 백준 - 10610번: 30 10월 25일(수) - 그리디 알고리즘 (10610번) 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 최초 생각 정리 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 문제점 // 수정 전 int main(void) { scanf("%s", N); qsort(N, sizeof(N) - 1, sizeof(char), compare); if (N[strlen(N) - 1] != '0'.. 공감수 0 댓글수 0 2023. 10. 25.
  • [C] 백준 - 2193번: 이친수 10월 20일(금) - 다이나믹 프로그래밍 (2193번) 2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않 www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 최초 생각 정리 - 나열해보니 피보나치 수열과 같다 - 다만, 범위를 고려해서 자료형으로 int 가 아닌 long long 을 활용해야할 것 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 문제점 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ.. 공감수 0 댓글수 0 2023. 10. 20.
  • [C] 백준 - 10026번: 적록색약 10월 18일(수) - 그래프와 순회 (10026번) 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 최초 생각 정리 - 기본적인 dfs 방식의 그래프 문제라고 판단 - 하지만 정상 / 색약인 경우로 나누어서 dfs 를 각각 진행해야하기에, dfs 함수를 2개 작성해야할듯 - 입력으로 R,G,B가 들어오게되므로 string을 통해서 입력받는다 - R이면 arr[ ][ ] = 1, G이면 arr[ ][ ] = 2, .. 공감수 0 댓글수 0 2023. 10. 18.
  • [C] 백준 - 11726번: 2 x n 타일링 10월 9일(월) - 다이나믹 프로그래밍 (11726번) 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 최초 생각 정리 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 문제점 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 풀이 #define _CRT_SECURE_NO_WARNINGS #pragma warning(disable: 4996) #define M.. 공감수 0 댓글수 1 2023. 10. 9.
  • [C] 백준 - 1753번: 최단경로 9월 15일(금) - 그래프와 순회 (1753번) 1753번: 최단경로 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1 ≤ V ≤ 20,000, 1 ≤ E ≤ 300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1 ≤ K ≤ V)가 www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 최초 생각 정리 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 문제점 1. 최소 힙을 활용하면 될 것 같다는 아이디어까지만 생각남 -> 힙을 이용한 풀이와 관련해서 참고 힙(Heap)을 이용한 다익스트라(Dijkstra) 알고리즘 다익스트라 .. 공감수 0 댓글수 0 2023. 9. 15.
  • [C] 백준 - 3584번: 가장 가까운 공통 조상 9월 14일(목) - 트리 (3584번) 3584번: 가장 가까운 공통 조상 루트가 있는 트리(rooted tree)가 주어지고, 그 트리 상의 두 정점이 주어질 때 그들의 가장 가까운 공통 조상(Nearest Common Anscestor)은 다음과 같이 정의됩니다. 두 노드의 가장 가까운 공통 조상은, 두 www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 최초 생각 정리 - 입력은 테스트케이스의 개수인 T, 테스트케이스마다 노드의 개수 N, N-1개의 줄에 A, B를 입력받아야하며 마지막 줄인 N번째 줄에 가장 가까운 공통 조상을 구해야하는 두 노드가 주어진다 - 그러므로 parents[ 10001 ]과 visited[ 10001 .. 공감수 0 댓글수 0 2023. 9. 14.
  • [C] 백준 - 9252번: LCS - 2 9월 11일(월) - 다이나믹 프로그래밍 (9252번) 9252번: LCS 2 LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 최초 생각 정리 - 이전에 풀이했던 "9251번: LCS" 문제와 거의 유사 [C] 백준 - 9251번: LCS 9월 4일(월) - 다이나믹 프로그래밍 (9251번) 9251번: LCS LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는.. 공감수 0 댓글수 0 2023. 9. 11.
  • [C] 백준 - 1916번: 최소비용 구하기 9월 8일(금) - 그래프와 순회 (1916번) 1916번: 최소비용 구하기 첫째 줄에 도시의 개수 N(1 ≤ N ≤ 1,000)이 주어지고 둘째 줄에는 버스의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 M+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 최초 생각 정리 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 문제점 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 풀이 - 1 (풀이출처 -> https://kim1124.tistory.com/19) .. 공감수 0 댓글수 0 2023. 9. 8.
  • [C] 백준 - 9934번: 완전 이진 트리 9월 7일(목) - 트리 (9934번) 9934번: 완전 이진 트리 상근이는 슬로베니아의 도시 Donji Andrijevci를 여행하고 있다. 이 도시의 도로는 깊이가 K인 완전 이진 트리를 이루고 있다. 깊이가 K인 완전 이진 트리는 총 2K-1개의 노드로 이루어져 있다. (아래 www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 최초 생각 정리 - 완전 이진 트리이기에 중앙값을 차례대로 저장해나간다면, 원하는 출력의 순서를 맞출 수 있을 것 - 또한 완전 이진 트리이기에 하나의 배열에 입력받고, 합병정렬처럼 재귀를 돌려주면 될 것으로 예상 - 재귀함수에는 (start, end, 깊이)가 매개변수로 넘어와야하고, 탈출조건은 (깊이 ==.. 공감수 0 댓글수 0 2023. 9. 7.
  • [C] 백준 - 1339번: 단어 수학 9월 6일(수) - 그리디 알고리즘 (1339번) 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 최초 생각 정리 - 입력으로는 단어의 개수인 N, 그리고 N개의 단어가 주어진다 - for문을 N개만큼 돌려주면서 word[9]에 입력받고, word[ ] - 'A' 값을 인덱스로 받은뒤 qsort를 통해서 alphabet[ ] 배열을 정렬해주고 for문을 돌려주면서 max 값을 갱신해준다 - 출력은 최댓값을 갱신해놓.. 공감수 0 댓글수 0 2023. 9. 6.
  • [C] 백준 - 9251번: LCS 9월 4일(월) - 다이나믹 프로그래밍 (9251번) 9251번: LCS LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 최초 생각 정리 - 이전의 "11053번: 가장 긴 증가하는 부분수열"의 풀이가 결국 정리되어서 LIS알고리즘이 존재했던 것 처럼, 이번 문제도 LCS알고리즘이 있을 것이라 판단하고, 먼저 찾아보기로 결정 [알고리즘] 그림으로 알아보는 LCS 알고리즘 - Longest Com.. 공감수 0 댓글수 0 2023. 9. 4.
  • [C] 백준 - 11404번: 플로이드 9월 1일(금) - 그래프와 순회 (11404번) 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 최초 생각 정리 - 플로이드 알고리즘은 이전에 풀이했던 "11403번: 경로 찾기" 문제에서 처음 활용해보았다 - 당시에는 플로이드 알고리즘인줄 모르고 풀이했지만, 이번 문제는 바로 활용해아하기에 아래 풀이를 참고 Floyd-Warshall(플로이드 와샬) 알고리즘 Floyd-Warshall(플로이드 와샬) 알고리즘 Floy.. 공감수 0 댓글수 0 2023. 8. 31.
  • [C] 백준 - 1068번: 트리 8월 31일(목) - 트리 (1068번) 1068번: 트리 첫째 줄에 트리의 노드의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 0번 노드부터 N-1번 노드까지, 각 노드의 부모가 주어진다. 만약 부모가 없다면 (루트) -1이 주어진다 www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 최초 생각 정리 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 문제점 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 풀이 - 1 (풀이출처 -> https://forswdev.tistory.com/entry/%EB%B0%B1%EC%A4%8.. 공감수 0 댓글수 0 2023. 8. 31.
  • [C] 백준 - 1449번: 수리공 항승 8월 30일(수) - 그리디 알고리즘 (1449번) 1449번: 수리공 항승 첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다. 둘째 줄에는 물이 새는 곳의 위치가 주어진다. N과 L은 1,000보다 작거나 같은 자연수이고, 물이 새는 곳의 위치는 1,000보다 작거나 www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 최초 생각 정리 - 입력은 물이 새는 곳의 개수로 N과 테이프의 길이인 L, 그리고 N개의 물이 새는 곳의 위치이다 - 예제 3번을 통해서 제공되는 N개의 물이 새는 곳의 위치가 정렬되지 않은 상태라는 것을 알 수 있다 따라서 leak_point[ ]에 입력받은 이후, qsort를 통해서 오름차순으로 정렬.. 공감수 0 댓글수 0 2023. 8. 30.
  • [C] 백준 - 11279번: 최대 힙 8월 29일(화) - 자료 구조 (11279번) 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 최초 생각 정리 - 직전에 풀이했던 "1927번: 최소 힙" 문제와 사실상 동일하다 - 다만 최소 힙과 최대 힙의 차이가 있기때문에, 이전 풀이의 push함수와 pop함수안에 있는 부등호들을 모두 반대로 수정하면 풀이가 진행될 것으로 예상 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ.. 공감수 0 댓글수 0 2023. 8. 29.
  • [C] 백준 - 2565번: 전깃줄 8월 28일(월) - 다이나믹 프로그래밍 (2565번) 2565번: 전깃줄 첫째 줄에는 두 전봇대 사이의 전깃줄의 개수가 주어진다. 전깃줄의 개수는 100 이하의 자연수이다. 둘째 줄부터 한 줄에 하나씩 전깃줄이 A전봇대와 연결되는 위치의 번호와 B전봇대와 연결되는 www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 최초 생각 정리 - 이전에 풀이했던 11054번 문제에서도 활용했던 LIS 알고리즘을 활용해야할 것으로 예상 - 수열 A와 수열 B가 연결되어서 작동(?)해야하므로 구조체로 입력을 A_location, B_location으로 받는다 - 수열 A와 연결되어있는 수열 B가 증가하는 수열을 이루면되므로, qsort는 A_locat.. 공감수 0 댓글수 0 2023. 8. 28.
  • [C] 백준 - 2583번: 영역 구하기 8월 25일(금) - 그래프와 순회 (2583번) 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 최초 생각 정리 - dfs 활용하는 방식의 풀이를 예상 -> "단지번호붙이기" or "유기농 배추" 문제와 비슷한 방식의 풀이를 예상 다만 이전까지 풀이에서는, 영역을 1과 0처럼 이분법적으로 나누어놓기만 했었다 - 하지만 이번 문제는 dfs가 돌지 않은 영역들 마다 각각의 넓이도 따로 구해야하므로 모두.. 공감수 0 댓글수 0 2023. 8. 25.
  • [C] 백준 - 5639번: 이진 검색 트리 8월 24일(목) - 트리 (5639번) 5639번: 이진 검색 트리 트리를 전위 순회한 결과가 주어진다. 노드에 들어있는 키의 값은 106보다 작은 양의 정수이다. 모든 값은 한 줄에 하나씩 주어지며, 노드의 수는 10,000개 이하이다. 같은 키를 가지는 노드는 없다 www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 최초 생각 정리 - 이진 탐색 트리와 관련해서는 insert_node 함수와 new_node 함수는 교재의 풀이를 참고 - 입력의 수에 대한 제한이 없으므로, EOF이기 전까지는 계속 입력으로 &data를 받는다 - insert_node와 new_node의 내용은 교재 활용 - 출력은 postorder함수에서 후위순회한.. 공감수 0 댓글수 0 2023. 8. 24.
  • [C] 백준 - 1049번: 기타줄 8월 23일(수) - 그리디 알고리즘 (1049번) 1049번: 기타줄 첫째 줄에 N과 M이 주어진다. N은 100보다 작거나 같은 자연수이고, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 각 브랜드의 패키지 가격과 낱개의 가격이 공백으로 구분하여 주 www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 최초 생각 정리 - 입력은 사야하는 기타줄의 개수 N, 브랜드의 종류 M을 입력받는다 또한, 각각의 브랜드별로 패키지가격과 낱개의가격을 각각 변수 package, 변수 single에 입력받는다 - 1) 패키지는 전혀없이 낱개로만 구매하는 경우 -> final_min 계산 2) 패키지를 구매해야하는 경우 2-1) N이 .. 공감수 0 댓글수 1 2023. 8. 23.
  • [C] 백준 - 11054번: 가장 긴 바이토닉 부분 수열 8월 21일(월) - 다이나믹 프로그래밍 (11054번) 11054번: 가장 긴 바이토닉 부분 수열 첫째 줄에 수열 A의 크기 N이 주어지고, 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ Ai ≤ 1,000) www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 최초 생각 정리 - "11053번: 가장 긴 증가하는 부분 수열" 문제의 풀이에 더 추가하는 방향의 풀이를 예상 - 입력은 수열의 크기 N, 수열을 이루고있는 숫자들이 입력된다 - 11053번의 풀이에서는 증가하는 부분수열을 구했고, 11054번의 풀이에는 감소하는 부분수열을 추가하면 된다 - 증가하는 부분수열은 dp_left[ ], 감.. 공감수 0 댓글수 0 2023. 8. 21.
  • [C] 백준 - 11403번: 경로 찾기 8월 18일(금) - 그래프와 순회 (11403번) 11403번: 경로 찾기 가중치 없는 방향 그래프 G가 주어졌을 때, 모든 정점 (i, j)에 대해서, i에서 j로 가는 길이가 양수인 경로가 있는지 없는지 구하는 프로그램을 작성하시오. www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 최초 생각 정리 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 문제점 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 풀이 - 1 (플로이드 - 워셜 알고리즘 풀이) #define _CRT_SECURE_NO_WARNINGS #pragma warning(disable.. 공감수 0 댓글수 0 2023. 8. 18.
  • [C] 백준 - 11725번: 트리의 부모 찾기 8월 17일(목) - 트리 (11725번) 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 최초 생각 정리 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 문제점 #include int N; int visited[100001]; int parent[100001]; int graph[100001][100001]; void dfs(int num) { visited[num] = 1; for (int i = 0; i 추후 복습 및 재풀이 필요 ㅡㅡㅡ.. 공감수 0 댓글수 0 2023. 8. 17.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.