백준 알고리즘 기초 강좌

1장 알고리즘과 입출력 - (1) 알고리즘 개요

살구르 2017. 7. 12. 17:36

1. 알고리즘

-알고리즘이란 어떠한 문제를 해결하기 위한 여러 동작들의 모임이다

-알고리즘 공부에 가장 효과적인 것은 문제풀이!


2. 알고리즘 문제 사이트 

-Baekjoon Online Judge

-알고스팟

-Codeforces

-Topcoder 


3. 공부하는 방법

1) 먼저 알고리즘이나 문제를 푸는 방법을 이해

 -완벽하지 않거나 일부만 이해했어도 성공!

2) 관련 문제를 풀어본다

 -한 문제는 길어야 2시간 정도만 고민

 -모르겠으면 포기하고 정답 소스 또는 풀이를 보자

3) 1)번과 2)번에서 이해가 잘 가지 않는 부분이 있으면 질문

 -설마 이런 것도 질문해도 될까 고민 되는 것도 질문하라는 뜻

4) 다시 알고리즘을 이해해보고 문제를 다시 풀어본다

 -모르겠으면 포기하고 다시 풀이를 보자

 -그래도 모르겠으면 다른 일을 하거나, 놀러 나가거나, 다른 알고리즘이나 문제를 풀어본다


4. 가장 중요한 점

-프로그래밍을 많이 하는 것도 중요하지만

-가장 중요한 것은 생각을 많이 하는 것


5. 더 중요한 점

-더 중요한 것은 모르겠으면 포기하고 풀이를 보는 것

-스스로 생각해서 해결하지 않고 답을 보고 해결했어도 해결한 것(내가 잘 안되는 부분... 답을 보고 해결하면 뭔가 찝찝함..)

-1개를 3일에 걸쳐서 푸는 것 보다 3개를 1일 동안 푸는 것이 더 좋다

-미적분 문제를 풀기 위해서 미적분을 스스로 생각해서 만들 필요가 없는 것과 비슷

-여기서 포기라는 것은 최대한 노력을 해보고를 의미함

-무작정 "아 모르겠다~ 포기하고 답봐야지" 가 아님

-그래도 1~2시간 고민해도 모르겠으면 포기!

-알고리즘에서 제일 중요한 것은 알고리즘을 만드는 것이 아니고, 생각의 과정을 배워서 나중에 스스로 그러한 생각을 해내는 것!


6. 프로그래밍 언어

-프로그래밍 언어는 크게 상관이 없다

-C++ > C > Java (많은 사람들의 사용 비율)

-C언어를 사용하는 경우에는 C++을 사용하는 것이 좋다

-C++을 사용하는 경우 C++11, STL, scanf/prinf를 사용하는 것이 좋다

-Java를 사용하는 경우에는 Scanner를 이용해 입력을 편리하게 받는 것이 좋다