C 프로그래밍/BOJ
-
[백준 7562] 나이트의 이동C 프로그래밍/BOJ 2022. 9. 5. 20:25
https://www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net #include #include #include int T;// 테케 수 int N;// 체스판 한 변의 길이 int cx, cy, fx, fy;// (cx, cy) : 현재 위치 (fx, fy) : 미래 위치 bool visited[300 + 10][300 + 10];// 체스판 한 변의 최대 길이 : 300 struct _st { int x; int y; int move; }; std::queu..
-
[백준 2178] 미로 탐색C 프로그래밍/BOJ 2022. 9. 5. 19:45
https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net #include #include #include int N, M;// 행, 열 char board[100 + 10][100 + 10]; bool visited[100 + 100][100 + 100]; struct _st { int a; int b; int t; }; std::queue Q; void input(void) { scanf("%d %d", &N, &M); for (int i = 1; i N || nb < 1 || nb..
-
[백준 3190] 뱀C 프로그래밍/BOJ 2022. 9. 4. 21:02
https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net #include #include int N; int K; int board[100 + 2][100 + 2];// 사과 1 빈칸 0 int L; char CMD[10000 + 2]; struct _st { int x, y; }; std::deque S; void input() { scanf("%d", &N); scanf("%d", &K); for (int k = 0; k < K; k++) { int x =..
-
[백준 10655] 마라톤1C 프로그래밍/BOJ 2022. 9. 2. 23:26
https://www.acmicpc.net/problem/10655 10655번: 마라톤 1 젖소 박승원은 2번째 혹은 3번째 체크포인트를 건너뛸 수 있는데, 여기서 두 번째 체크포인트를 건너뛸 경우 경로는 (0,0) -> (11,-1) -> (10,0) 이 되며 거리는 14이다. 박승원은 이것보다 더 짧게 달릴 www.acmicpc.net #include #include int N; struct _st { int x; int y; }points[100000 + 10]; long long int length[100000 + 10]; long long int min = 0x7fffffff; long long total = 0; void input(void) { scanf("%d", &N); for (int..
-
[백준 2428] 표절C 프로그래밍/BOJ 2022. 9. 2. 22:57
https://www.acmicpc.net/problem/2428 2428번: 표절 첫째 줄에 제출한 솔루션의 개수 N이 주어진다. 둘째 줄에는 각 솔루션 파일의 크기 size(F1), size(F2), ..., size(FN)이 주어진다. (1 ≤ N ≤ 100,000, 1 ≤ size(Fi) ≤ 100,000,000) 솔루션 파일의 크기는 정수이 www.acmicpc.net #include #include #include int N; double files[100000 + 10]; long long int cnt; void input(void) { scanf("%d", &N); for (int i = 0; i < N; i++) { scanf("%lf", &files[i]); } } int BS_low..
-
[백준 2805] 나무 자르기C 프로그래밍/BOJ 2022. 9. 1. 21:45
https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net #include #include #include int N; long long int M; int tree[1000000 + 10]; void input(void) { scanf("%d %lld", &N, &M); for (int i = 0; i < N; i++) { scanf("%d", &tree[i]); } } int get_tree(void) { std..
-
[백준 8983] 사냥꾼C 프로그래밍/BOJ 2022. 9. 1. 21:01
https://www.acmicpc.net/problem/8983 8983번: 사냥꾼 KOI 사냥터에는 N 마리의 동물들이 각각 특정한 위치에 살고 있다. 사냥터에 온 사냥꾼은 일직선 상에 위치한 M 개의 사대(총을 쏘는 장소)에서만 사격이 가능하다. 편의상, 일직선을 x-축이라 가 www.acmicpc.net #include #include #include int M, N, L;// 사대 수, 동물 수, 사정거리 int base[100000 + 10]; struct _st { int a; int b; }animal[100000 + 10]; int cnt; void input(void) { scanf("%d %d %d", &M, &N, &L); for (int i = 0; i < M; i++) { sca..
-
[정올 2788] 도약C 프로그래밍/BOJ 2022. 9. 1. 20:28
http://jungol.co.kr/bbs/board.php?bo_table=pbank&code=2788&sca=99 JUNGOL www.jungol.co.kr // 시간복잡도 O(N^2logN) // 세번째 좌표에 대해서 logN으로 탐색하는 방법 #include #include #include int N; int leaf[1000 + 10]; int ans; void input(void) { scanf("%d", &N); for (int i = 0; i < N; i++) { scanf("%d", &leaf[i]); } } int BS_lower(int target)// target 값보다 크거나 같은 값 중 가장 작은 값 찾기 { int s = 0; int e = N - 1; int pivot = 0..