본문 바로가기

Algorithms135

온라인 키 순서 1부터 엔번까지 번호가 붙여져 있는 학생 두 학생끼리 키를 비교한 결과의 일부가 주어짐 단, 엔명의 학생들의 키는 모두 다름 6명의 학생들에 대하여 6번만 키를 비교함 학생들의 키를 비교한 결과가 주어질 떄, 자신의 키가 몇 번째인지 알 수 있는 학생들이 모두 몇 명인지 계산하여 출력하는 프로그램을 작성 #include #define MAX(A,B) (((A)>(B)) ? (A):(B)) #define MIN(A,B) (((A)=0) ? (A):(-(A)) typedef unsigned int uint; typedef unsigned long long ull; typedef long long sll; uint adjF[501][501] = { 0, }; // 정방향 인접리스트 uint adjR[501][.. 2018. 11. 14.
온라인 사진 사진 사진작가 정우 일렬로 줄 세워진 엔명의 사람들의 사진을 찍어야 함 엔 명의 사람마다 서로 다른 아이디를 갖고 있음 정우가 사진을 찍으려는 찰나에, 어떤 사람들은 줄에서의 자신의 위치에서 이탈해 다른 자리로 이동할 수 있음 사진을 찍고 나면 사람들은 자신의 원래 위치로 돌아가게 됨 정우는 사진을 다섯번 찍을 것임 다섯 번 사진을 찍는 동안, 한 사람당 최대 한 번 움직일 수 있다고 함 사진을 찍으때마다 살마들의 아이디 순서가 주어질 때ㅑ 원래 사람들은 어떤 순서대로 서 있었는지 출력하시오 // IF Using Quick Sort, It is timeout~!! #include #define MAX_NUM 20000 int N; int answer; int D[5][MAX_NUM]; int IDX[5].. 2018. 11. 14.
두 개의 미로 현민이와 정우 서로 다른 미로에 갇힘 미로는 갈림길이 없지만, 현민이와 정우는 멍청하기 떄문에 탈출하지 못함 범수 서쪽 남쪽 현민 정우 범수 시킨 대로 미로의 끝점에 서게 되면 미로를 탈출하게 됨 미로는 북 동 남 서의 수열로 표현됨 북북동으로 가야 끝점에 도달하게 됨 만약 엔엔이로 미로에서 출발했을 떄 범수가 #include #define MAXN (10000) int N; char pa[MAXN + 2], pb[MAXN + 2]; int main(void) { freopen("test.txt", "r", stdin); int test_case; int T; /* 아래 코드를 수행하지 않으면 여러분의 프로그램이 제한 시간 초과로 강제 종료 되었을 때, 출력한 내용이 실제 표준 출력에 기록되지 않을 수 .. 2018. 11. 14.
2-1 조 구성하기 기숙 학원 엔명의 학생들 참여. 기숙 학원 특별. 조별 수업 진행함. 잘 하는 학생, 덜 잘하는 학생, 같은 조, 실력 차이가 많이 나도록 조를 편성하는 것이 좋음 같은 조에 속하게 된 학생들의 나이 차이 역효과. 나이 순서대로 정렬 후, 적당히 학생들을 나누는 방식으로 조를 구성하기로 함. 조의 개수는 상관 없음. 각 조가 잘 구성된 정도, 그 조에 속해있는 가장 점수가 높은 학생의 점수, 가장 점수가 낮은 학생의 점수의 차이. 전체적 조가 잘 구성된 정도. 각각의 조가 잘 구성된 정도의 합으로 나타냄. 한 명으로 조가 구성되는 경우에는 그 조의 잘 구성된 정도가 항상 0이 됨 학생들의 점수가 주어졌을 때, 기숙 학원을 도와 전체적으로 조가 잘 구성된 정도의 최대값을 구하자. #include //#de.. 2018. 11. 14.
6-1 단어가 등장하는 횟수 독서광 동철이 책 책에서 어떤 단어가 몇 번 등장하는지 물어봄 책의 내용 비가 주어질 때 특정 단어 에스가 등장하는 횟수를 알아내시오 책의 내용에서 특정 단어가 등장하는 부분이 중첩될 수도 있음에 유의 const int MAXN = 500000; const int MAXM = 100000; unsigned long long d[MAXM / 2 + 5]; // //unsigned long long my_pow(unsigned long long base, unsigned long long exp) //{ // if (exp == 0) return 1; // if (exp == 1) return base; // // if (exp % 2 == 0) // return my_pow(base * base, exp .. 2018. 11. 12.
5-1 비밀 어떤 비밀 이야기. 앤명의 아이들 유치원, 선생님 아이들 비밀 이야기 어떻게 전달되었는지에 대한 정보 주어짐. 이 정보로 알 수 있는 각 아이들이 친하다고 생각하는 친구들의 수를 구함 어떤 비밀이 전달될 수 있는 가장 긴 길이도 구하자 에이가 비를 친하다고 생각하더라도, 비가 에이를 친하다고 생각하지 않을 수 있음을 유의. 인풋에 대한 정보 오케이 #include #define MAX_N 10 #define MAX_K 30 int N, K, M; int INPUT[MAX_K][MAX_N + 1]; int MAP[MAX_N + 1][MAX_N + 1]; int FRIEND[MAX_N + 1]; int visit[MAX_N + 1]; int result; int path[MAX_N + 1]; #define .. 2018. 11. 12.
4-3 Inversion Counting 길이 앤의 수열 에이가 주어짐. 에이의 원소들을 각각 에이, 에이, 에이앤 이라고 할 때 아이 2018. 11. 12.
4-1 Pole 높이가 1, 2, ..., N 인 막대 N개가 일렬로 배치 막대를 왼쪽 혹은 오른쪽에서 보면, 큰 막대가 뒤에 있는 작은 막대를 가리게 됨 예를 들어 막대의 배치가 4, 1, 2, 3 순서로 되어 있음. 왼쪽에서 하나, 오른쪽에서 하나 막대의 개수 앤과 왼쪽에서 봤을 때 보이는 막대의 개수 L, 오른쪽에서 봤을 떄 보이는 막대의 갯수 R이 주어졌을 때 이러한 결과를 만드는 배치가 몇 가지가 가능한지 구하는 프로그램 작성 #include #define MAX_NUM 20 long long DP[MAX_NUM + 1][MAX_NUM + 1][MAX_NUM + 1]; int main(void) { int T; int test_case; int N, L, R; freopen("text.txt", "r", std.. 2018. 11. 12.
2-3 괄호 길이가 엘인 괄호 문자열 에스가 주어짐 아래 연산 최대 열 번 적용하여 올바른 괄호 문자열 만들기 에스는 에스오엘-1일떄, 아이제이를 선택하여 괄호들을 뒤집음 연산을 적용한 횟수를 출력함. 연산을 아무리 적용해도 올바른 괄호 문자열을 만들 수 없다면 -1을 출력함 #include #define N_MAX 1000 char arrayC[N_MAX + 1]; int arrayN[N_MAX + 1]; int tempN[N_MAX + 1]; typedef struct { int a; int b; } reverse; reverse reverseN[10]; int reverseCnt; void reverseOp(int a, int b) { for (int i = a; i = a; i--) { arrayN[j++] .. 2018. 11. 12.