본문 바로가기

[백준알고리즘] 2516번 예산 https://www.acmicpc.net/problem/2512 미쳤다 나는 아무리 생각해도 내방법으로 푸는 거 밖에 생각 못했는데 진짜 답 보니까 충격적이다ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 물론 내 방법도 sort를 해야한다는 것이 엄청 좋은 방법은 아니었지만 ㅠ답 보니까 헉 소리나옴 제대로 된 정답은 따로 안 올린당... 힌트는 이분탐색으로 푸는 거라는 거.. 밑에는 내가 짰던 코드!! 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263#define _CRT_SECURE_NO_WARNINGS#include#include#include#in..
[백준알고리즘] 1026번 보물 https://www.acmicpc.net/problem/1026 오늘 좀 쉽게 가고 싶어서 정답률 높은 걸로 골랐는데............ 풀지못함... N을 최대 50까지 받을 수 있기 때문에 next_permutation으로 하면 당연히 시간 초과가 날 것을 알았지만 방법이 생각이 안나서 한번 해 보았당 그러나 But!!!!!!!!!!!!!!!! 역시나 시간 초과. 아무리 생각해도 방법을 잘 모르겠어서 최소값 구하는 공식을 검색을 해 보앗다 ㅎ..ㅠㅠ 그런데 너무 간단하게도 배열의 최소값 * 최대값을 더해나가면 된다닛..!!? 왜 나혼자서는 이렇게 해야한다는 것을 생각해내지 못하는 걸까..? ㅠ 돌머리야 정신차리자... 힌트를 얻어 구현한 나의 코드는!? 123456789101112131415161..
[C/C++] scanf와 scanf_s [scanf_s 사용할 때 주의할 점!!!] 이전 백준 알고리즘 문제를 풀 때, free하는 부분이 잘 안되서 문자열 동적할당을 포기하고 다른 방법을 이용해 문제를 푼 적이 있다. 근데.. scanf와 scanf_s의 차이를 몰라 생긴 나의 무지의 문제였다 ㅠ^ㅠ 우선, scanf 사용시 error가 날 때 세 가지 방법이 있는데 (1) scanf_s 를 사용한다!(2) #define _CRT_SECURE_NO_WARNING 를 코드 맨위에 써준다!(3) #pragma warning(disable:4996)를 써준다! 위 방법들을 사용하면 ERROR가 나지 않는다. 하지만 (1)을 사용할 시 주의해야 할 점이 있다. scanf_s로 문자나 문자열을 받을 때에는 size도 인자로 주어야 한다는 것!!! s..
[백준알고리즘] 2178번 미로탐색 https://www.acmicpc.net/problem/2178 시간 초과 때문에 10분 버리고(dfs -> bfs 로 변경) 메모리 초과 때문에 10분 버렸다..(문자열 동적할당 -> 문자배열로 선언, ==> 포인터 및 할당했던 무작위 공간의 많은 메모리 제거! 최대 char*[101] 100개 ==> char[101]로 대체105*100 = 10500byte ==> 101byte이거 free하면 되는데 왜 free가 잘 안되었는지.. free 하는데 왜 오류가 날까.... 그래서 걍 내놨더니 메모리 많이 잡앗어..... visited 배열 -> arr 배열 내에서 방문 여부 판단) ==> char[101][101] 제거 ==> 10201byte 절약 최대 20600byte 절약 ==> 20KB 정도..
[백준알고리즘] 2579번 계단오르기 https://www.acmicpc.net/problem/2579 두 칸 이상 건너뛸 수 없는 조건 때문에 생각이 안나서 오래 걸렸다 ㅠㅠ 1234567891011121314151617181920212223242526272829303132#includeusing namespace std;#define max(a,b) ((a) > (b)) ? (a) :(b) int dp[302];int step[302]; int main(void){ int n; cin >> n; for (int i = 1; i > step[i]; } dp[1] = step[1]; dp[2] = step[1] + step[2]; // 각 계단까지의 최대 점수를 구하는 방법 // 두 가지 경우 중 최댓값이 그 계단까지의 최대 점수가 된다. ..
[백준알고리즘] 7576번 토마토 https://www.acmicpc.net/problem/7576 아니 이 빨간 줄 뭐죠..?.... 나중에 다시 올려야 긋네.. queue에 pair로 인자 넣으니까 개꿀깨꿀*^^ 내가 생각한 알고리즘이 한번에 맞아 들어간게 얼마만인가... 감격 ㅠㅠ bfs로 풀었당!_! 조건에 따른 출력을 좀 더티하게 짠 것 같긴하다만... 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879#include#includeusing namespace std; int arr[1001][1001];queueq;..