알고리즘 공부하기 (Step 1, 뭐 부터 어떻게 공부해야 하지?)
백준 사이트에서 공부를 시작하려고 하는데 추천 받은 문제 카테고리에 따라
입출력 - DP - 기타 - bfs,dfs - binary search - 분할 정복 - 그리디 - 완전탐색 순서로 풀어 보려고 한다.
이번 주말에 풀었던 입출력 문제들은 다음과 같다. (boj.kr/2557 형태로 검색!) 약 30문제, 5시간 정도 걸린 것 같다.
BOJ - 2557, 1000, 2558, 10950, 10951, 10952, 10953, 11021, 11022, 11718, 11719, 11720, 11721, 2741, 2742, 2739, 1924, 8393, 10818, 2438, 2439, 2440, 2441, 2442, 2445, 2522, 2446, 10991, 10992
시간 여유가 없으면 힘들겠지만, 주말에 몰아서 문제들을 풀다보니 확실히 하루에 긴 시간을 투자해서 공부하는 것이 짧게 여러번 공부하는 것 보다 학습 효율이 좋은 것 같다. 실수 했던 부분이나 배운 부분을 바로 다음 문제에 활용 가능해서 기억 -> 체화로 넘어갈 수 있는 것 같다.
또 더블 모니터를 활용하면 한쪽에 문제 한쪽에 코딩을 할 수 있어서 확실히 더 효율이 높은 것 같다.
문제번호 |
배운 사항 & 실수 한 부분 |
10951 |
cin.eof()를 활용하는 방법 https://takeknowledge.tistory.com/20 [주어진 테스트 케이스의 갯수 없이 입력이 끝날 때 까지 받아야 하는경우, cin.eof()==true 일때 까지 받아준다.] string 입,출력 https://giantpark197cm.tistory.com/142 [string s; getline(cin, s);] |
11720 |
char를 받은 후, char값에서 -’0’을 처리해줘서 값을 만들기. |
11721 |
strlen(char) 활용. 끝이 null 값이라 배열의 길이와 상관 없이 활용할 수 있다. 대신 #include <string.h> |
2741 |
for문을 활용해서 입,출력을 사용할 때 주의 사항 단순히 cin과 cout을 활용하면 입,출력 시간이 오래 걸리기 때문에 scanf나 printf를 활용하자. 또한 endl; 대신 개행문자(\n)을 활용하자. 혹은 https://www.acmicpc.net/problem/15552 를 참조하면, cin과 cout은 서로 입,출력이 묶여있어서 cin.tie(NULL)을 활용하면 입, 출력을 따로 활용 가능하여 속도 향상이 가능하다고 한다. |
1924 |
scanf 로 두개의 변수를 받으려 할 때, scanf(%d, %d) 이런식으로 중간에 ,를 넣으면 안된다. scanf(“%d %d”, &a, &,b); |
10818 |
int형의 범위는 -21억~21억 정도로 생각하자. 숫자를 쉽게 읽기 위해서는 (1억은 0이 8개) 100,000,000 = 1억 |
2445 |
for loop의 variable scope 는 for loop 내부만. |
2522 |
별찍기, 중심을 기준으로 대칭 구조는 for문의 step 을 활용해서 step 이 N일때 -1로 바꾸어 주면 쉽다. |
2446 |
scanf()에는 뒤에 꼭 주소값을 넣어줘야 한다! “&a” |
그럼 다음은 DP 이론을 정리하고, DP 문제를 풀어 봐야겠다.
DP - 1463, 11726, 11727, 9095, 10844, 11057, 2193, 9465, 2156, 11053, 11055, 11722, 11054, 1912, 2579, 1699, 2133, 9461, 2225, 2011, 11052
'Developer > Algorithm' 카테고리의 다른 글
알고리즘 공부하기 (Step 4, DFS, BFS 이론) (0) | 2020.05.16 |
---|---|
알고리즘 공부하기 (Step 3, Dynamic Programming 이론) (0) | 2020.04.30 |
자료구조(Data Structure) 입문을 위한 개요 정리 (0) | 2020.03.30 |
알고리즘 공부하기 (Step 1, 뭐부터 어떻게 공부해야 하지?) (0) | 2020.03.13 |