본문 바로가기
728x90

전체 글231

백준 (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.
백준 피보나치 함수 1003번 이문제는 동적 프로그래밍을 하면서 취코테랑 같은 문제라고 생각해서 접근했다가 안 풀려서 상당히 당황 했었지만 내 나름의 동적프로그래밍을 해봤다.. 하지만 이게 가장 효율적인 코드인가는 잘 모르겠다. ​내 코드 #include int done[41] = { 0 }; int dzero[41] = { 0 }; void fibo(int n) { dzero[0] = 1; dzero[1] = 0; done[0] = 0; done[1] = 1; if (n < 2) return; int check = 2; for (int i = 2; i 2023. 1. 4.
백준 타일채우기 문제 dp 어려운 문제였다. 많이 헤맸고 내가 헤맸던 과정들을 정리해봐야겠다. 재귀 문제와 점화식 세우는 문제는 정말 유사한 면이 많다. 내가 스스로 짜는거는 도저히 못하겠는데 남들 코드를 보면 정말 신비롭다는 생각이다. 이걸 성공을 하긴 했지만 온전히 내 힘으로 한게 아니기 때문에 언젠가 다시 해결해봐야겠다. 느낀점은 이만하고 이제 문제를 설명해보자. ​ 문제는 매우 간단하다. 우리는 일단 문제 이해는 어렵지 않을테니 문제 이해는 넘어가겠다. ​ 문제 해결을 위해 길이가 작은 부분부터 문제를 봤다. 우선 첫번째로 이 문제는 길이가 짝수일때만 가능하다. 타일들의 넓이는 다 짝수기 때문에 짝수들을 이용해서 넓이가 홀수인 사각형을 만들 수 없기 때문에 우리는 하나 특징을 찾았다. 1번 특징 : 길이는 반드시 짝수이고 .. 2023. 1. 3.
728x90