초기 네이버 기록/알고리즘(C) 34

백준 c++백준 1620번 포켓몬마스터 이다솜

/* 포켓몬 도감에서 포켓몬의 이름을 보면 포켓몬의 번호를 말하거나, 포켓몬의 번호를 보면 포켓몬의 이름을 말하는 연습 입력 : 포켓몬의 개수 N ,맞춰야 하는 문제의 개수 M 1 ~ N 포켓몬 이름, 문제 : M개 숫자는 문자로 문자는 숫자로! 조건 : 1 matter_n; mons *monster = new mons [mon_n]; mons *monster_name = new mons [mon_n]; for (int i = 0; i > monster[i].name; monster_name[i].name = monster[i].name; monster[i].number = i + 1; monster_name[i].number =i+1; } //cout > input..

백준 (C언어)백준 1152번 단어의 갯수 scanf ("%[^\n]")

이 문제는 처음에 scanf를 스페이스 말고 개행을 기준으로 받는 방법을 몰라서 헤맸었다. #include #include #include int main() { char arr[1000000]; scanf("%[^\n]", arr); int count = 1; int size = strlen(arr); for (int i = 0; i < size; i++) { if (arr[i] == ' ') count++; } if (arr[0] == ' ') count--; if (arr[size - 1] == ' ') count--; printf("%d", count); } 이 글은 코딩 꼬꼬마 시절에 푼 문제를 보관한 글로 네이버에 저장해둔 글을 옮긴 글입니다. 혹시나 참고하시는 부분에 이상한 부분이나 질문이 ..

백준 (C언어)백준 2869번 달팽이 (시간복잡도 문제)

이전에 풀었던 문제중에 시간복잡도에 자꾸 걸렸던 문제가 있었는데 시간복잡도를 줄이는 방법은 1. 함수의 호출의 수를 최대한 줄인다. 2. 미리할 수 있는 연산은 미리 끝내고 반복문에 들어간다. 3. 이번에 풀 문제인데 탐색할 때 값을 계속 올리면서 찾는 것보다 수식으로 풀고 코드를 짜는게 낫다는 거다. #include int main() { unsigned int up, down; unsigned int high; scanf("%d%d%d", &up, &down, &high); unsigned int day = 1; unsigned int cha = up - down; unsigned int real_high = high - down; while (1) { if (real_high =high 니까 이항해..

백준 (C언어)백준 10757번 큰수 A+B문제 리버스 사용

#include #include void reverse(char* arr) { int len = strlen(arr); for (int i = 0; i < len / 2; i++) { char tmp = arr[i]; arr[i] = arr[len - i - 1]; arr[len - i - 1] = tmp; } } int main() { char arr1[100003] = { 0 }; char arr2[100003] = { 0 }; char result[100003] = { 0 }; scanf("%s %s", arr1, arr2); int i = 0; int arr1_size = strlen(arr1); int arr2_size = strlen(arr2); int size = arr1_size; int ..

백준 (C언어)백준 1002번 터렛 원의 내접 외접 조건문제

처음에 엄청 삽질을 했다. 공식으로 접근을 하려고 했고 그 사투의 흔적이 여기에 있다 처음에 원이 만나는 경우를 외접만 생각해서 왜 안되지 싶었는데,, 옛날에 수능 준비할 때 맨날 풀었던 외접 내접을 까먹어서 다시 복습을 해봤다. 두 원의 위치 관계는 두점에서 만나거나 아에 안 만나거나 한점에서 접하거나 아에 일치하는 경우 이렇게 나뉜다. 설명의 편의를 위해 두 원의 반지름을 r1 r2 로 적고 두 원의 중심사이 거리를 d라고 하겠다. 원이 두 점에서 만나는 경우: d가 r1 + r2 보다 큰 경우 원은 절대로 만나지 못한다. 0인 조건이 된다. 그리고 d와 작은반지름의 합이 큰반지름보다 작으면 원은 만날수 없기 때문에 이 두개의 조건을 정리하면 d >r1 +r2 && d >큰반지름 -작은반지름 이 된다..

백준 (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; ..

백준 (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..

백준 (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..

728x90