shfshfdl   4년 전

우선 최대한 혼자힘으로 문제를 풀어보려고 합니다.

그 후 막히는 부분이 있으면 질문을 통해 조언을 얻고 문제를 풀어보고자 합니다.

만약 이렇게 해서 정답이 되더라도

이게 최적화가 된 코드인지 다른 방법이 있는지 또한 알지 못하는 실력인데.

문제를 푼 후 다른사람들이 제출한 코드를 보는게 도움이 될까요?


만약 본다면 그 본것으로 다시 풀어봐야하는 건가요?

아니면 이런방법도 있구나 이해를 하고 넘어가는게 좋을까요?

공부방법에 정석은 없겠지만 조언 부탁드리겠습니다.


알고리즘에 대해 전무한 상태에 언어와 툴사용법만 익힌 상태라

알고리즘의 접근 방향을 찾지 못해 자괴감이 듭니다.


도움부탁드리겠습니다.


감사합니다.

deneb2016   4년 전

저는 항상 문제를 풀고나서 다른 사람의 소스코드를 참고합니다.

특히 제 코드보다 실행시간, 메모리, 코드 길이등에서 뛰어난 코드 위주로 참고합니다.

참고했을 때, 저와 같은 알고리즘인데 단지 구현 방법이 조금 다른것 뿐이라면 그냥 이해만 하고

아예 다른 알고리즘이라면, 그 알고리즘도 공부해보는 편입니다.

chogahui05   4년 전

https://www.acmicpc.net/board/...

일단 이 글 쭉 읽어보세요. 사실 다 좋은 블로그입니다.

(물론 저도 곧 프로그래밍 블로그를 하겠지만요.)


초심자시라면. kks227님 블로그에서 먼저 배우시는 게 좋아보입니다.

상당히 설명이 잘 되어 있거든요.


뭔가를 배울 때 꼭 필요한 키워드는 따로 구글링을 해 보시는 게 좋습니다.

예를 들어서 정렬을 배우실 때 stable한가? 제자리 정렬인가? 이런 것들요.

특히 전자는 간과하고 넘어가기 쉬운데요.

stable하지 않은 특성 때문에 맞은 거 같으면서도 상당히 WA를 많이 받으시는 걸 보면.. 안 중요한 키워드는 아니지요.


그리고, 이론적인 것들 있잖아요.

왜 이게 맞는 거지? 왜 이런 걸까? 이걸 증명까지 하실 수 있으시다면 더 좋고요. 제가 그런 스타일입니다.


Q. 남의 코드를 보는 게 도움이 되나요?

네. 아름다운 코드는 많이 보세요.


Q. 다른 방법으로 푸는 게 도움이 되나요?

네. 분명히 도움 많이 됩니다.


ps.

그리고 왠만하면 레퍼런스 정도는 언제 어디에 어떻게 사용해야 하는지 익히시는 게 좋습니다.

의외로 기초적인 레퍼런스에서 질문이 많이 들어오더라고요.

예를 들어서, sort라던지, stable_sort라던지.. memset라던지..

h0ngjun7   4년 전

이제 막 시작하시는 단계라면, 일단 수많은 지식을 습득하는 작업이 선행되고 나서 자력으로 문제를 풀어보아야 한다고 생각합니다.

기본적인 자료구조나 알고리즘들은 책, 인터넷 영상 등을 통해서 배우시고, 유명한 코더들의 블로그 등을 통해 코드를 보시는 게 좋다고 생각합니다.

물론 코드를 보고 끝나면 안되고, 이해한 다음에 다시 본인이 직접 다시 짜 봐야겠죠.

어느 정도 지식이 습득되었다고 판단되시면 연관된 문제들을 풀어보면서 응용력을 조금 기르는 것이 좋다고 생각합니다.

이 작업도 어느 정도 하셨다면, 문제에 관한 힌트는 얻지 않은 상태에서 본인이 직접 해결법을 고안하고 코딩하여 문제를 맞추는 과정이 필요합니다.

제 사견이라 이게 반드시 정답은 아님을 참고해주세요.

shfshfdl   4년 전

응용력을 기르는 방법은 고민해보고 계속 풀어보는 방법밖에 없겠죠? :)

h0ngjun7   4년 전

네. 한 30분이나 1시간 정도 고민하시고 잘 안되시면 그냥 답 보는 것도 괜찮아요.

=

chogahui05   4년 전

이 문제는 어렵지만 나중에라도 풀어봐야겠다. 는 목표치를 정하시고

공부하시면 도움이 되는 거 같아요.


오늘은 습격자 초라기 문제를 못 풀었다. 디지털 카운터 문제도 어렵네? 하지만 언젠가는 풀 거야.

하면서 북마크에 저장을 해 놓는 겁니다.


그리고 조금 쉬운 문제들을 풀어봅니다. 그러다보면 내가 목표로 하는 문제와

비슷한 유형의 문제를 만나게 되는데요.


(1) 색상환 문제는 원형으로 배치가 되어 있습니다.

이 부분은 초라기와 유사합니다. 


색상환은 초라기보다는 쉽습니다. 하지만 유형은 초라기와 거의 같지요. 

색상환을 풀었다. 초라기를 풀 수 있을지 없을지 모르겠지만. 접근법은 비슷하잖아요. 

어짜피 경우의 수만 더 나누면 되는 거 아닌가요?

이렇게 생각하시고 초라기 문제를 도전해 보시는 거죠. 제 스타일입니다.


이게 최적인지 아닌지는 모르겠습니다.. 정답이 있는 질문은 아니니

다른 사람들 의견도 들어보시고 공부 방법을 정하시는 게 어떨까 싶습니다.

댓글을 작성하려면 로그인해야 합니다.