본문 바로가기

알고리즘 기초시절44

백준 (C언어)그리디 알고리즘 단어수학 백준1339번 실패코드 #include #include int tenup(int a) { int k = 1; for (int i = 0; i < a; i++) k *= 10; return (k); } intwhere_is_alph(char a, char* arr, int len) { int i = 0; int result = 0; if (len == 0) return 0; while (1) { if (arr[i] == a) result += tenup(len - i - 1); if (i == 7) break; i++; } return (result); } void sort_arr(int* arr) { int tmp; for (int i = 0; i < 26; i++) { for (int j = 0; j < 25-i; .. 2023. 1. 4.
백준 (C언어)백준 1331번 구현 알고리즘 시뮬레이션(나이트) #include int plus(int k) { if (k < 0) return(-k); return k; } int main() { char knight[3]; char next[3]; int check = 1; int first = 0; for (int i = 0; i < 18; i++) { scanf("%s", knight); if(first!=0) if (plus(knight[0] - next[0]) + plus(knight[1] - next[1]) != 3) check = -1; scanf("%s", next); if (plus(knight[0] - next[0]) + plus(knight[1] - next[1]) != 3) check = -1; first = 1; } if (check == 1.. 2023. 1. 4.
백준 (C언어)백준 14503 로봇청소기(구현 시뮬레이션 맵탐색) 틀린코드에요! #include #include int main() { int length, width;//세로, 가로 int x, y, direction;//방향은 0:북, 1:동, 2:남, 3:서 int** map;// 세로 가로, 0육지 1바다 scanf("%d %d", &length, &width); map = (int**)malloc(sizeof(int*) * (length)); //int move[4][2] = {{0,-1}, {1,0}, {0,1}, {-1,0}};//북, 동, 남 ,서 int move[4][2] = { {0,-1}, {-1,0} ,{0,1} ,{1,0} };//북,서,남,동 scanf("%d %d %d ", &x, &y, &direction); for (int i = 0; i.. 2023. 1. 4.
백준 (C언어)백준 10828번 스택 스택 구현문제 #include #include #include #define max_size 1000000 int stack[max_size]; int top=-1; void push(int x) { //if (top == max_size - 1) //printf("stackoverflow\n"); //else //{ top++; stack[top] = x; //} } void pop() { if (top == -1) printf("-1\n"); else { printf("%d\n", stack[top]); top--; } } int main() { int input; int len; int x; scanf("%d", &input); char order[10]; for (int i = 0; i < input; i++).. 2023. 1. 4.
백준 (C언어)백준 DFS와 BFS문제 1260번 #include int mat[1001][1001] = { 0 }; int visited[1001] = { 0 }; int x, y; int queue[1001]; void dfs(int(* mat)[1001], int* visited, int v,int n) { visited[v] = 1; for (int i = 1; i 2023. 1. 4.
백준 (C언어)백준2667번 단지번호 붙히기 #include #include void apart(int **map,int **visited, int mapsize,int*result,int* count,int i,int j) { //printf("now:%d %d\n", i, j); //if (i + 1 < mapsize && j + 1 < mapsize && 0 < i - 1 && 0 < j - 1) //{ if (i + 1 < mapsize) { if (visited[i + 1][j] == 0 && map[i + 1][j] == 1) { visited[i + 1][j] = 1; result[count[0]]++; apart(map, visited, mapsize, result, count, i + 1, j); } } if (0 2023. 1. 4.
백준 2178 BFS미로탐색(C언어) #include void ctoi(char* arr, int* ar,int m) { for (int i = 0; i < m; i++) { ar[i] = arr[i] - 48; //printf("%d\n", ar[i + 1]); } } int cue[40000]; int front = 0; int rear = 0; void bfs(int y, int x,int (*map)[200],int xmax,int ymax)//bfs는 방향벡터 순서와도 관련이 있는가? { int popx = x; int popy = y; while (front 2023. 1. 4.
백준 토마토 성공!! 1068번 BFS(C언어) #include int map[1001][1001] = { -1 }; int cue[1100000] = { 0 }; void bfs(int length,int width) { int count = 0; int front = 0; int rear = 0; int pop; for (int i = 0; i < length; i++) { for (int j = 0; j < width; j++) { if (map[i][j] == 1) cue[rear++] = i * width + j; } } int first = rear; while (front max) max = map[i][j]; if (map[i][j] == 0) check = 1; } //printf("\n"); } //printf("check: %d t.. 2023. 1. 4.
백준 트리 1068번 DFS(C언어) #include int count = 0; dfs(int now_node, int* node, int nodenum,int root) { int check = 0; for (int i = 0; i =0&&now_node!=root&& count++; } int main() { int node[50]; int nodenum,ignore_node; int root=100; scanf("%d", &nodenum); for (int i = 0; i < nodenum; i+.. 2023. 1. 4.