본문 바로가기

Algorithms/simulation90

A응실 보급로 / 다이스트라 1. 다익스트라 2. 힙, 이진트리 3. 피큐 4. 구현하는 방법 5. 메모리 크기 조정 6. 체크 사항 #include #define MAX 100 #define H_MAX 20000 #define INF 0x7fffffff typedef struct _st { int i; int j; int time; }P_Queue; P_Queue heap[H_MAX], st, now, next; int heapSize; int N, sol; int map[MAX + 10][MAX + 10], cost[MAX + 10][MAX + 10]; int rPtr; int goI[4] = { -1, 0, 1, 0 }, goJ[4] = { 0, 1, 0, -1 }; void Init(void) { heapSize = 0; f.. 2018. 12. 18.
1406 에디터 에디터 한 줄로 된 간단한 에디터 구현. 이 편집기 영어 소문자만 기록할 수 있는 편집기. 최대 600,000 글자까지 입력 가능 커서라는 것 있음. 커서는 문장의 맨 앞, 문장의 맨 뒤, 또는 문장 중간의 임으이 곳에 위치 할 수 있음. 즉 길이가 엘인 문자열이 현재 편집기에 입력되어 있으면, 커서가 위치할 수 있는 곳은 엘+1 가지 경우가 있음 편집기가 지원하는 명령어는 다음과 같음 엘 커서를 왼쪽으로 한 칸 옮김 디 커서를 오른쪽으로 한 칸 옮김 비 커서 왼쪽에 있는 문자를 삭제함 피$ 라는 문자를 커서 왼쪽에 추가함 초기 편집기에 입력되어 있는 문자열이 주어지고, 그 후 입력한 명령어가 차례로 주어짐 모든 명령어를 수행하고 난 후 편집기에 입력되어 있는 문자열을 구하는 프로그램 명령어가 수행되기 .. 2018. 11. 16.
링크드 리스트 백준 조세퍼스 연결 리스트, 링크드 리스트 각 노드 데이터 포인터 가지고 한 줄로 연결되어 있음 데이터를 저장하는 자료 구조 데이터를 담고 있는 노드들이 연결되어 있음 노드의 포인터가 다음이나 이전의 노드와의 연결을 담당하게 됨 단일 연결 리스트, 이중 연결 리스트 2개가 있음 연결 리스트 늘어선 노드의 중간지점에 자료의 추가와 삭제가 오1의 시간에 가능하다는 장점을 갖음 배열이나 트리 구조와는 달리 특정 위치의 데이터를 검색해 내는데에는 오엔의 시간이 걸리는 단점도 갖고 있음 배열이나 트리 구조와는 달리 특정 위치의 데이터 검색 오엔? 단일 연결 리스트 구조 이중 연결 리스트 구조 원형 연결 리스트 구조 조세퍼스 1번부터 엔번까지 엔명의 사람이 원, 양의 정수가 주어짐. 순서대로 엠번쨰 사람을 제거함 한 사람이 제거.. 2018. 11. 16.
user 청소봇 테캐 100개, 제한시간 3초 메모리: 힙, 정적 메모리 합쳐서 256메가 바이트, 스택 메모리 1메가 정사각형 맵이 있고, 1이 써있으면 천장에 무늬, 0은 무늬없는 곳, 9는 벽 단 맵의 테두리는 벽. 청소로봇은 2바이2의 크기를 갖고 맵 상에서 이 로봇의 위치와 방향을 찾는 문제 메인에서 두가지 함수를 제공함 보이드 스캔 인트 이미지 로봇과 주변을 포함한 4바이4의 맵의 값을 알려줌. 로봇의 방향에 따라 이미지 배열에 기록되는 값이 다름 방향에 맞게 회전된 값이 들어간다고 보면 됨 불 컨트롤 int cmd 로봇을 앞으로 나아가게 하거나, 오른쪽 회전을 하는 명령임 고 명령이 fail 되면, false를 리턴함 2가지 API를 활용하여, 아래 API를 구현하셈 1 보이느 이닛 int n, const .. 2018. 11. 14.
온라인 팰린드롬 어떤 단어 앞뒤로 거꾸로 팰린드롬 가장 긴 팰린드롬 부문 문자열의 길이를 구하는 프로그램을 작성 샘플 예제는 Longest Subsequence로 해결해야 하지만, 이 문제를 맞추기 위해서는 연속 문자열으로 해결해야 합니다 #include int N, M; #define NN 1002 char A[NN]; int myslen() { int t = 0; for (; A[t] && tb) ? a : b; } int checkOdd(int c) { int t; for (t = 1; c >= t && c + t= t && c + t - 1 2018. 11. 14.
온라인 지구 온난화 사람들은 모음이 없는 알파벳을 사용함 앰개의 알파벳이라도 알려줘야 함 섬의 다어는 앤개만 존재함 학생들이 읽을 수 있는 최대 단어의 개수를 알아내자 #include #define N_MAX 50 #define W_MAX 27 char STR[N_MAX]; int SUM[W_MAX]; int STR_SUM[N_MAX]; int C_IDX[W_MAX]; int stp_sum; int STPD[N_MAX]; int stp = 0; int leng_str(char *str) { int cnt = 0; while (*str != '\0') { str++; cnt += 1; } return cnt; } void init_data(int n) { int a, b; for (a = 0; a < N_MAX; a++) {.. 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.