알고리즘 풀기 효과적인방법은?
문제 풀때 양치기가 좋을까요? 아니면 오래걸리더라도 한문제를 보며 다양한답변을 찾는식이 좋은가요?
두번째방법으로 진행하고았었는데 너무 오래걸려서 자꾸안하게돼요 ㅠㅠㅠㅠㅠㅠㅠㅠ
어떻게 알고리즘 문제풀이를 해야할지 모르겠네요 실력자님들은 어떻게 공부하셨나요?
- 안녕하세요. - 저도 아직 열심히 공부하고 있고, 아직도 실력이 부족하지만 간단한 답을 드리자면, - 1) 혼자서 무언가를 푸는 것은 좋지만, 한시간 이상 고민해서 안되면 풀이를 보시기 바랍니다. 쉬운 예로 어려운 미적분문제를 그냥 여러가지 방법으로 풀어만 본다고 해서 늘지는 않습니다. 오히려 시간만 갈 뿐이죠. 그래서 처음에는 꼭 풀이를 보시되, 그렇다고 발로 풀이만 보지 마시고 우선은 문제를 음미하는 시간을 가져 보시기 바랍니다. - 2) 알고리즘 문제에 있어서 제일 중요한건 생각하는 시간입니다. 그리고 점화식에 대한 기본 지식들이 필요하구요, 해당 내용들을 공부하는데 시간을 쓰시기 바랍니다. - 3) Big O notation에 대해서도 자세히 공부하시면 좋을 것 같습니다. - 좋은 성과 있으시기 바랍니다. 
- 알고리즘 공부는 기본적으로 한 문제를 오래 보는 걸 추천드립니다. - 아마 대표적인 알고리즘 문제들은 시중에 많이 알려져 있죠. - 예를 들어 탐색이나 heap, stack을 만들어서 푸는 것 등등 이요 - 이런 기본적인 알고리즘 문제를 먼저 파악해서 정리하시면 좋습니다. - 여기서 말하는 정리란 기본적으로 비슷한 유형의 문제를 마주했을 때, 문제를 접근하는 방법을 자신만의 형식으로 정리해두는 것입니다. - 그 다음에 좀 더 난이도 있는 문제에 도전해서 곁가지를 치듯 학습하시면 어떨까 싶습니다. 
- 안녕하세요, - 알고리즘은 학문적으로 많이 연구가 되었습니다. - 우리가 수학에서 최적의 값을 찾고 싶을때, 하나씩 값을 대입하지 않고 방정식을 세워 해결 하듯이, - 상황별로 사용 가능한 도구들이 많이 개발이 되어 있습니다. - 이러한 도구들을 이해하는 것은, 사용할 수 있는 도구가 많아지는 것을 뜻합니다. - 문제를 풀때 다양한 방법으로 접근 하는 것은 다양한 도구를 이용해 문제를 풀어보는 것일 겁니다. - 만약에 알고리즘 해결 도구의 종류를 많이 가지고 계시다면 한가지 문제를 잡고 다양한 방법을 생각하시고 구현은 한두가지 선택하셔서 하시고, 다른 방법론은 이를 구현한 다른 사람의 사례로써 검증하시는게 좋을 것 같습니다. - 제 개인적인 추천은 온라인 저지 사이트를 이용해서 알고리즘 푸는 훈련을 하시는 것 입니다. - 대표적으로는 백준 온라인, 탑코더 등이 있습니다. - 이러한 사이트들에서는 알고리즘 해결 도구들을 모아서 커리큘럼을 제공하고 있으므로, 많은 도움이 되실겁니다. 
- 안녕하세요, - 질문하신 내용의 답변 드리겠습니다. - 요즘 저희 회사 포함해서 많은 IT 기업들이 알고리즘 시험을 당연하게 보고 있는데요, - 빠른 시간내에 실력과 점수를 높일 수 있었던 방법을 설명드리겠습니다. - 우선, 알고리즘 관련 책을 보면서 전체적인 감을 잡는게 중요합니다. - (쉬운거부터 해야 흥미를 유지하며 이어 갈 수 있는거 같아요.) - 전체적으로 한번 훑어서 본뒤에는 바로 알고리즘 푸는 사이트를 이용해서 풀어보도록 합니다. - (보통 C++ 이나 Python 이 무난합니다.) - 아래는 알고리즘 사이트 들 입니다. - 백준 : https://www.acmicpc.net/ (매우매우 쉬운 문제부터 양이 엄청남) - 리트코드 : https://leetcode.com/ (해외 IT 기업 취업시 유용한 문제들) - 삼성 SW Expert Academy : https://swexpertacademy.com/ (강의 + 문제) - 알고스팟 : https://algospot.com/judge/problem/list/ (제가 봤던 책과 연관된 문제들이 있던...) - 말씀하셨던 한문제를 다양하게 푸는것은 초반에는(아무것도 구현안해봤을 때) 괜찮을 수 있지만, - 항상 어떤문제의 최소한의 시간으로 (+최소한의 메모리로) 풀 수 있도록 노력해보시고, 푼뒤에 다른 사람 코드를 보고 - 다른 알고리즘이 어떤게 더 좋았는지 보고 익히시는 방식으로 하시면 안질리게 계속 하실 수 있다고 생각합니다. - 감사합니다. 
- 저는 알고리즘을 터득하기 위해 상당히 많은 예제를 풀었는데요 - 단순하게 책에 있거나 어떤곳에서 문제은행처럼 내는 문제를 푸는것도 - 알고리즘을 터득하는데 도움이 되지만, - 더 많은 알고리즘 과 최적의 알고리즘을 찾아내기 위해서는 - 스스로 문제를 변형해가면서 답을 찾도록 해보세요 - 그리고 일부러 어려운 문제를 처음부터 낼 필요는 없습니다 - 쉬운것부터 시작하여 쉬운문제에 변형을 가하여 문제풀이를 해보세요 - 예를 들어 구구단 출력하는 프로그램을 만든다면? - for 문을 통해서 만들어보기도 하고, if 비교문을 통해서 만들어 보기도 하고 - 1-9단 , 1-20단 이렇게도 만들어보시고 - 1단,2단,3단 - 4단,5단,6단 - 7단,8단,9단 이렇게 출력을 만들어보시고 - 1단 - 2단,3단 - 4단,5단,6단 - 7단,8단,9단 이렇게 스스로 문제를 변형해가면서 만들어보세요 - 왠 쌩뚱맞은 방식이야 할지는 모르지만, 저렇게 구성을 위해서는 여러가지 명령어와 - 알고리즘이 수반이 되기때문에 저런식으로 상당히 많은 문제들을 풀다보면, - 나중에 큰 도움이 되실겁니다^^ - 이 방법이 제가 컴퓨터 처음 배울때 써먹었던 방법입니다.확실히 효과도 있구요^^ 
- 대부분의 알고리즘 / 코딩 테스트는 결국 핵심적이고 자주 쓰이는 문제들을 꼬아서 출제하는것 입니다. ( 퀵 솔트 등등..) - 결국은 많은 문제를 다양하게 풀어보는것이 왕도입니다. - 백준 등 매우 유명한 코딩테스트 사이트들 말고도 비교적 최신 동향을 반영한 알고리즘 테스트 환경이 되어있는 사이트 들도 있습니다. - 다시한번 강조드리지만 좋은 문제를 많이, 깊게 풀어보시는것 말고는 정답이 없습니다. - https://programmers.co.kr/learn/challenges?language=javascript - 많은 기업들이 실제 채용에도 반영하는 코딩테스트 및 강좌가 개설되어있는 프로그래머스 입니다. - 기본적으로 강좌도 좋지만 실제로 알고리즘을 접목한 문제를 풀어볼수있는 환경을 잘 제공해줍니다. - 구름 IDE 로 유명한 구름에 코딩테스트 도구입니다. - 사용자가 직접 알고리즘 문제를 만들어서 게시한다던가, 구름IDE와 접목하여 실시간으로 - 다른 인원들과 채팅하며 코딩을 가능하게 해줍니다. 
- 음, 취준을 할 때가 생각이 많이 나네요... ㅎ - 제 의견은 일단, 문제유형을 많이 익히는게 중요하다고 생각합다. 기초적인 알고리즘은 이미 정해져 있거든요. 그거 위주로 일단 정답을 바로 보셔도되고, 한번 생각하고 보셔도 되고. 그걸 한번 쑥~익히시면, 코드 그라운드(?)였나.. 삼성에서 코딩대회하는 문제들 푸는 사이트 있거든요 ㅎ 거기서 난이도 별로 연습하는게 제일 괜찮은 방법이라 생각합니다. 정올(정보올림피아드) 이라는 사이트도 괜찮아요! 
- 안녕하세요 답변 드립니다. - 알고리즘 공부 어렵지요. 말씀하신 대로 많은 문제를 풀어보는 양치기와 한문제를 오랜시간 생각해보는 방법들이 있는데요. - 제가 추천드리는 방법은 이 두가지를 혼합하는 방식입니다. 한문제를 풀때 최대 40분을 넘기지 마시고 생각하시다가 못 풀면 그때 모범 답안을 봐서 해결책들을 익히시기 바랍니다. - 알고리즘 문제 은행 사이트로는 백준 추천드립니다. - 답변 채택 부탁드려요~