초기 네이버 기록 54

백준 c++1654번 랜선 자르기 문제

실패코드 //시간 초과 코드 아무리 시간을 줄이려고 노력해도 이분탐색을 사용하지 않는다면 절대로 풀수 없는 범위가 나오는 문제이다. #include #include using namespace std; int main() { int k,n; cin >> k >> n; int count, result; int *input = new int[k]; for (int i =0; i > input[i]; } count = 0; sort(input ,input +k); int tk = k; for (int i = input[tk-1] ; tk >0; tk--) { count = 0; for (int j = 0; j < k; j++) { count +=input[j] / i; } if ..

백준 c++백준 7568 덩치 클래스 복습

​ 이 문제는 분명 클래스를 쓰지 않고도 더 짧게 풀 수 있었다. 하지만 굳이 클래스를 사용해 본건 생성자에 대해서 복습이 필요했고 더 보기 깔끔한 코드를 만들어보기 위해서였다. 확실히 가독성과 코드 짤 때 머리속에 정리가 잘 되는 느낌이다. calloc 함수를 사용해봤는데 malloc과 달리 인자를 넣는 방식이 살짝 달랐다. void *malloc(size_t size); void *calloc(size_t num, size_t size); 이렇게 돼있어서 처음에 멀록처럼 사용했다가 이렇게 바꾸었다. #include #include using namespace std; class human { private: int kg; int len; public : human(int kg, int len): kg..

백준 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 니까 이항해..

728x90