본문 바로가기

교육

(93)
[9일차][DP] 최소합 구하기 - 문제 설명5 2 8 8 8 4 4 8 5 8 10 9 6 3 5 위 번호판에서 오른쪽이나 아래로만 갈 수 있고 가면서 큰 수를 더했을때 최대값을 구하시오- 입력1 // 테스트 케이스3 5 // 행, 렬5 2 8 8 8 // 숫자 판4 4 8 5 810 9 6 3 5- 출력#1 44 // 테스트 케이스, 최대합- 입력 예시3 3 5 5 2 8 8 8 4 4 8 5 8 10 9 6 3 5 4 5 10 3 3 2 2 9 9 10 10 2 8 8 4 1 1 1 4 5 6 3 20 20 11 18 3 11 19 1 8 8 19 17 4 3 18 9 9 14 14 9 17 3 11 6 8 10 17 10 10 5 11 18 15 8 15 4 9 1 12 18 15 5 5 14 4 16 16 11 13 18 12..
[9일차][DP] 최대합 구하기 - 문제 설명5 2 8 8 8 4 4 8 5 8 10 9 6 3 5 위 번호판에서 오른쪽이나 아래로만 갈 수 있고 가면서 큰 수를 더했을때 최대값을 구하시오- 입력1 // 테스트 케이스3 5 // 행, 렬5 2 8 8 8 // 숫자 판4 4 8 5 810 9 6 3 5- 출력#1 44 // 테스트 케이스, 최대합- 입력 예시3 3 5 5 2 8 8 8 4 4 8 5 8 10 9 6 3 5 4 5 10 3 3 2 2 9 9 10 10 2 8 8 4 1 1 1 4 5 6 3 20 20 11 18 3 11 19 1 8 8 19 17 4 3 18 9 9 14 14 9 17 3 11 6 8 10 17 10 10 5 11 18 15 8 15 4 9 1 12 18 15 5 5 14 4 16 16 11 13 18 12..
[9일차][DP] 이항계수 구하기 - 문제 설명(x+y)^3을 하면x^3 + 3x^2y + 3xy^2 + y^3 이 나온다이 때 x^2y의 이항계수는 3이다이런식으로 (x+y)^n을 할 때 x^ay^b의 이항계수를 구하는 문제- 입력1 // 테스트 케이스2 1 1 // n, a, b- 출력#1 2 // 테스트케이스, 이항계수- 입력 예시3 2 1 1 3 2 1 5 3 2- 출력 예시#1 2 #2 3 #3 10- 코드#include "stdio.h" int N;long long int binomial[71][71]; // 이항계수 배열 int main(int argc, const char * argv[]) { int T; scanf("%d", &T); for(int tc = 1;tc
[8일차][다익스트라] 최소 연료 소비량 - 문제 설명왼쪽위에서 오른쪽 아래로 감한번에 갈 수 있는 범위는 위, 오른쪽, 아래, 왼쪽 4가지 방향한 칸 갈때마다 연료 1소비높이가 현재보다 높을 경우 높이 차이만큼 연료 1 더 소비0 1 1 1 01 1 0 1 00 1 0 1 01 0 0 1 11 1 1 1 1위와 같은 경우0 1 1 1 01 1 0 1 00 1 0 1 01 0 0 1 11 1 1 1 1위와 같이 돌아서 연료가 9 소모 된다.- 입력1 // 테스트 케이스5 // N*N크기0 1 1 1 0 // 맵 표시1 1 0 1 00 1 0 1 01 0 0 1 11 1 1 1 1- 출력#1 9 // 테스트 케이스, 최소 연료 소비량- 입력 예시3 3 0 0 0 0 0 0 0 0 0 5 0 1 1 1 0 1 1 0 1 0 0 1 0 1 0 1 0..
[8일차][다익스트라] 최단거리 - 문제 설명0->N번 노드로 가는 최소비용 거리 - 입력1 // 테스트 케이스2 3 // N, 엣지갯수0 1 1 // 0~1로 가는데 비용 10 2 1 // 0~2로 가는데 비용 11 2 6 // 1~2로 가는데 비용 6- 출력#1 1 // 테스트케이스, 비용 1(0~2로 한번에 가면 되기 때문)- 입력 예시3 2 3 0 1 1 0 2 1 1 2 6 4 7 0 1 9 0 2 3 0 3 7 1 4 2 2 3 8 2 4 1 3 4 8 4 6 0 1 10 0 2 7 1 4 2 2 3 10 2 4 3 3 4 10- 출력 예시#1 1 #2 4 #3 10- 코드 #include "stdio.h" int N, E;int map[1001][1001];int distance[1001];int used[1001]; vo..
[7일차][최소신장트리] 최소신장트리 - 문제 설명0~N번까지 노드를 가진 그래프최소 신장 트리의 비용을 모두 더해 출력하시오N은 1천개E는 100만개까지 가능- 입력1 // 테스트 케이스2 3 // 노드번호 0~2까지, 엣지 3개0 1 1 // 0과 1사이 비용 10 2 1 // 0과 2사이 비용 11 2 6 // 1과 2사이 비용 6- 출력#1 2 //테스트케이스, 최소비용- 입력 예시3 2 3 0 1 1 0 2 1 1 2 6 4 7 0 1 9 0 2 3 0 3 7 1 4 2 2 3 8 2 4 1 3 4 8 4 6 0 1 10 0 2 7 1 4 2 2 3 10 2 4 3 3 4 10- 출력 예시#1 2 #2 13 #3 22- 코드#include "stdio.h" int N, E; // 노드 갯수, 그래프 갯수int represent[10..
[5일차] 우회전 - 문제 설명우회전밖에 할 수 없는 차가 있다.목표 순서가 정해지면 목표지점을 다 순회하는데 우회전을 몇번 해야하는가 1 3 2 위와 같은 맵의 경우 R 1 R 3 2, R R 위와 같이 총 4번의 우회전을 해야 목적지를 다 돌 수 있다.- 입력1 // 테스트 케이스5 3 // 5*5배열, 목적지 3개2 3 4 2 3 4// 목적지 좌표 (2,3), (4,2), (3,4)- 출력#1 4 //테스트 케이스, 우회전 갯수- 입력 예시3 5 3 2 3 4 2 3 4 5 4 3 2 2 4 4 3 5 2 5 5 2 4 3 2 2 3 4 4 5 5- 출력 예시#1 4 #2 10 #3 9- 코드#include "stdio.h" int N, locationNum;int currentLocation; int main(i..
[5일차][그래프] 최소동전 갯수 - 문제 설명n명이 사람들이 동전을 가지고 있음최소 갯수는 1개누구보다 많은지만 알 수 있음이 때 최대 갯수를 알아내기- 입력 1 // 테스트 케이스3 3 // 3명, 관계 3개(관계란 누가 누구보다 많다)1 2 1 3 3 2 // 1 < 2, 1 < 3, 3 < 2- 출력#1 3 // 테스트케이스, 3개가 최대 갯수- 입력 예시3 3 3 1 2 1 3 3 2 5 5 1 2 1 3 4 3 3 2 2 5 6 7 1 2 1 3 3 2 6 3 3 4 5 4 2 5- 출력 예시#1 3 #2 4 #3 5- 코드#include "stdio.h" int peopleNum, relation; int coinRelationGraph[101][101]; // 누가 누구보다 많다라는 관계를 가지는 그래프int getMore..