C 프로그래밍/BOJ
-
[백준 2606] 바이러스C 프로그래밍/BOJ 2022. 8. 24. 02:14
https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net #include int N; int c; int computer[100 + 2][100 + 2]; int visited[100 + 2]; int cnt; void input(void) { scanf("%d %d", &N, &c); int v1 = 0, v2 = 0;// 지역변수 초기화해줄것 // 이거 안해주면 틀림 for (int i = 0; i < c; i++) { scanf("%d %d", &v1,..
-
[백준 14889] 스타트와 링크C 프로그래밍/BOJ 2022. 8. 21. 18:15
https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net #include #include #include int N; int A[20 + 2][20 + 2];// 능력치 int ans = 0x7fffffff; std::vector S;// 스타트 팀 std::vector L;// 링크 팀 void input() { scanf("%d", &N); for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { scanf("%d", &..
-
[백준 2531] 회전초밥C 프로그래밍/BOJ 2022. 8. 21. 15:46
https://www.acmicpc.net/problem/2531 2531번: 회전 초밥 첫 번째 줄에는 회전 초밥 벨트에 놓인 접시의 수 N, 초밥의 가짓수 d, 연속해서 먹는 접시의 수 k, 쿠폰 번호 c가 각각 하나의 빈 칸을 사이에 두고 주어진다. 단, 2 ≤ N ≤ 30,000, 2 ≤ d ≤ 3,000, 2 ≤ www.acmicpc.net #include int N, d, k, c;//접시 수, 초밥의 가짓수, 연속해서 먹는 접시 수, 쿠폰번호 int susi[30000 + 10]; int diff[3000 + 10]; int max; int flag; void input(void) { scanf("%d %d %d %d", &N, &d, &k, &c); for (int i = 0; i < N;..
-
[백준 2979] 트럭 주차C 프로그래밍/BOJ 2022. 8. 20. 18:12
https://www.acmicpc.net/problem/2979 2979번: 트럭 주차 첫째 줄에 문제에서 설명한 주차 요금 A, B, C가 주어진다. (1 ≤ C ≤ B ≤ A ≤ 100) 다음 세 개 줄에는 두 정수가 주어진다. 이 정수는 상근이가 가지고 있는 트럭이 주차장에 도착한 시간과 주차장 www.acmicpc.net #include int A, B, C; int time[3 + 2][2 + 2]; int truck[100 + 10]; int cost; void input(void) { scanf("%d %d %d", &A, &B, &C); for (int i = 0; i < 3; i++) { scanf("%d %d", &time[i][0], &time[i][1]); } } void get_..
-
[백준 2670] 연속부분최대곱C 프로그래밍/BOJ 2022. 8. 20. 17:46
https://www.acmicpc.net/problem/2670 2670번: 연속부분최대곱 첫째 줄은 나열된 양의 실수들의 개수 N이 주어지고, 그 다음 줄부터 N개의 수가 한 줄에 하나씩 들어 있다. N은 10,000 이하의 자연수이다. 실수는 소수점 첫째자리까지 주어지며, 0.0보다 크거나 www.acmicpc.net // 시간복잡도 : O(N) // 권장 #include int N; double num[10000 + 10]; double max; void input(void) { scanf("%d", &N); for (int i = 0; i < N; i++) { scanf("%lf", &num[i]); } } void get_max(void) { double tmp = 1; for (int i =..
-
[백준 2578] 빙고C 프로그래밍/BOJ 2022. 8. 20. 17:13
https://www.acmicpc.net/problem/2578 2578번: 빙고 첫째 줄부터 다섯째 줄까지 빙고판에 쓰여진 수가 가장 위 가로줄부터 차례대로 한 줄에 다섯 개씩 빈 칸을 사이에 두고 주어진다. 여섯째 줄부터 열째 줄까지 사회자가 부르는 수가 차례대로 www.acmicpc.net #include int board[5 + 2][5 + 2]; int call[5 * 5 + 2]; void input(void) { for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { scanf("%d", &board[i][j]); } } for (int i = 0; i < 5 * 5; i++) { scanf("%d", &call[i]); } } void ..
-
[백준 2659] 십자카드 문제C 프로그래밍/BOJ 2022. 8. 19. 00:12
https://www.acmicpc.net/problem/2659 2659번: 십자카드 문제 입력은 한 줄로 이루어지며, 이 한 줄은 카드의 네 모서리에 씌여있는 1 이상 9 이하의 숫자 4개가 시계 방향으로 입력된다. 각 숫자 사이에는 빈칸이 하나 있다. www.acmicpc.net #include int num[4]; int div[4]; void input(void) { for (int i = 0; i < 4; i++) { scanf("%d", &num[i]); } } int get_clock(int a[])//입력받은 배열을 시계방향으로 돌면서 시계수를 구한다 { int min = 10000; for (int i = 0; i < 4; i++) { int tmp = a[i % 4] * 1000 + ..
-
[백준 2630] 색종이 만들기C 프로그래밍/BOJ 2022. 8. 18. 21:11
https://www.acmicpc.net/problem/2630 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net #include int n; int paper[128 + 10][128 + 10]; int w_cnt, b_cnt; void input(void) { scanf("%d", &n); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { scanf("%d", &paper[i][j]); } } } void cut_paper..