본문 바로가기

전체

(325)
[6일차][미로] 미로 찾기 -문제 설명1 1 1 1 11 2 0 0 11 1 1 0 11 3 0 0 11 1 1 1 11은 벽2는 시작지점0은 길3은 도착한번에 한칸씩 왼쪽, 위쪽, 오른쪽, 아래쪽으로 갈 수 있다.- 입력 예시3 5 11111 12001 11101 13001 11111 5 11111 12131 10111 10001 11111 9 111111111 121000001 101111101 100000101 111110101 101000101 101011101 100000031 111111111- 출력 예시#1 1 #2 0 #3 1- 코드#include "stdio.h"int N;int map[101][101];int visit[101][101];void findGoal(int col,int row);int startCo..
[4일차] 수막대 - 문제 설명수 막대를 이용해서 길이를 주어진 길이를 만족하라5, 2, 3으로 6을 만들기 위해선5에서 2를 뺀뒤 3을 더해야한다.이런식으로 빼고 더할 수 있음- 입력1 // 테스트 케이스8 3 // 목표 길이, 수막대 갯수2 6 7 // 각각 수막대의 길이- 출력#1 2 // 테스트케이스, 2개- 입력 예시3 8 3 2 6 7 10 4 3 4 5 6 12 5 4 2 3 7 8- 출력 예시#1 2 #2 2 #3 2- 코드#include "stdio.h"int findMinNumOfStrck(int startLength);int L, N; int queue[101];int front;int rear;int stickNum[101];int stick[5]; // 막대 종류int main(int argc, c..
[4일차][그래프] 최소거리 - 문제 설명그래프에서 0번노드에서 시작해 n번노드로 도착하는 최소거리 구하라- 입력1 // 테스트 케이스2 3 // 2번노드가 마지막 노드, 엣지 3개0 1 // 0->1 가능0 2 // 0->2 가능1 2 // 1->2 가능- 출력#1 1 // 테스트케이스, 0->2로 한번에 갈 수 있기때문에 1- 입력 예시3 2 3 0 1 0 2 1 2 4 7 0 1 0 2 0 3 1 4 2 3 2 4 3 4 7 20 0 1 0 2 0 5 1 2 1 4 1 5 1 7 2 3 2 4 2 5 2 6 2 7 3 4 3 6 3 7 4 5 4 6 4 7 5 7 6 7- 출력 예시#1 1 #2 2 #3 2- 코드#include "stdio.h" void findShortestPath(int startNode);int queu..
[4일차][그래프] n으로 도착하는 경로 개수 - 문제 설명0~n까지 노드로 구성된 그래프도착노드로 가는 경로의 갯수 구하기- 입력1 // 테스트 케이스2 3 // 노드 갯수, 그래프 갯수0 1 // 0->1번 갈 수 있음0 2 // 0 -> 2번 갈 수 있음1 2 // 1 -> 2번 갈 수 있음- 출력#1 2 // 테스트 케이스, 경로 갯수- 입력 예시3 2 3 0 1 0 2 1 2 4 7 0 1 0 2 0 3 1 4 2 3 2 4 3 4 7 20 0 1 0 2 0 5 1 2 1 4 1 5 1 7 2 3 2 4 2 5 2 6 2 7 3 4 3 6 3 7 4 5 4 6 4 7 5 7 6 7- 출력 예시#1 2 #2 4 #3 28- 코드int graph[21][21]; // 그래프int visit[21];void findNumberOfWay(int n..
[3일차][이진트리] 조짜기 - 문제 설명조짜고 싶은사람을 쪽지에 적어 내서 그를 기반으로 조를 짬(조는 2명 기준)- 입력1 // 테스트 케이스5 2 // 5명, 쪽지 2개1 2 3 4 // 1번은 2번이랑, 3번은 4번이랑 조짜고 싶다.- 출력#1 3 // 테스트 케이스, 조 갯수- 입력 예시3 5 2 1 2 3 4 5 3 1 2 2 3 4 5 7 4 2 3 4 5 4 6 4 7- 출력 예시#1 3 #2 2 #3 3- 코드 #include "stdio.h"int group[1002]; // 조 배열int main(int argc, const char * argv[]) { int T; scanf("%d", &T); for(int tc = 1;tc
[3일차][이진트리] 부모노드의 합 구하기 - 문제 설명먼저 입력받은 수들을 입력된 순서대로 작은값이 부모에 오도록 정렬한 뒤가장 마지막 노드의 부모들의 합 구하기23 57 4 6위와 같을 경우 마지막 노드 6의 부모들의 합은 5+2로 7이다.- 입력1 // 테스트 케이스6 // 노드 갯수7 2 5 3 4 6- 출력#1 7 // 테스트 케이스, 합- 입력 예시3 6 7 2 5 3 4 6 6 5 5 4 3 2 1 8 7 2 6 10 8 5 11 7- 출력 예시#1 7 #2 3 #3 16- 코드#include "stdio.h"void makeBinaryHeapTree(int data); //트리에 값 넣기int sumOfParents(int last); // 부모들의 합 구하기int last; // 노드 수int tree[10]; // 트리 순서대로..
[3일차][2진트리] 부모의 갯수 자식 갯수 세기 - 문제 설명주어진 엣지(부모-자식)로 트리를 구성하여 해당 노드의 부모 갯수, 자식갯수를 출력21 564위와 같을때 1의 부모 갯수는 1개 자식갯수는 2개기 때문에 1, 2를 출력하면 된다.- 입력1 // 테스트 케이스5 1 //엣지 갯수 주어진 노드2 1 1 6 6 4 2 5 5 3- 출력#1 1 2 // 테스트케이스, 부모갯수, 자식 갯수- 입력 예시 3 5 1 2 1 2 5 1 6 5 3 6 4 5 1 2 6 6 4 6 5 4 1 5 3 10 5 7 6 7 4 6 9 4 11 9 5 11 8 5 3 5 2 8 1 8 10 - 출력 예시#1 1 2 #2 3 0 #3 3 2- 코드#include "stdio.h"int findParentCount(int node);void findChildCount(..
[2일차][재귀함수] 작업지시하기 - 문제 설명N개의 일을 N명의 사람이 맡아 할때 가장 빠른 처리 시간 구하기 1 2 3 A 2 1 2 B 5 8 5 C 7 2 2 위 같은 경우엔 A가 2번일, B가 1번일, C가 3번일을 해서 총 1+5+2로 8이 최소- 입력1 // 테스트 케이스3 // N값2 1 2 // 작업배열5 8 57 2 2- 출력#1 8 // 테스트케이스 최소 시간- 입력 예시3 3 2 1 2 5 8 5 7 2 2 3 9 4 7 8 6 5 5 3 7 5 5 2 1 1 9 3 3 8 3 1 9 2 8 8 6 1 5 7 8 3 5 5 4 6 8- 출력 예시#1 8 #2 14 #3 9- 코드#include "stdio.h"int N;int work[10][10]; // 작업량 배열int permutation[10]; // 순열을..