dkwkekzz   2달 전

안녕하세요.

문제 풀이에 관한 질문인데요. 2가지가 있습니다.

첫번째는 특정 문제에 관한 질문입니다..

이 문제는 해당 조건을 만족하면서 분해할 수 있는 최소값을 만족하는 경우의 수를 구하는 문제입니다. 
무슨 문제인가요? 아무리 봐도 특정 규칙같은 것은 없어서 DP문제라고 생각했습니다. 
결론은 안 풀립니다. 왜안풀릴까? 모든 경우를 순회하는 자체가 안됩니다. 생각해보면 일단 적절히 인자를 정해서 다음과 같은 함수를 정의했습니다. 
index에서 남은 개수가 n이면서 s개의 간선을 끊었을 때, 가능한 경우의 수
인자가 3개이므로 메모이제이션이 터집니다. 3가지 인자를 순회하는 방식으로는 시간상으로도 안된다고 생각했습니다.
다른 함수 정의나 방법이 필요한데 떠오르지 않습니다.

힌트좀 주시면 감사하겠습니다. 

두번째는 문제 해결 방법에 관한 질문인데요.

그리 오랜시간을 알고리즘에 투자한 것은 아니지만, 어느 수준 이상의 문제를 푸는게 어려워보입니다. 무슨 수를 써서라도 푸는 편이지만 시간이 너무 오래걸립니다. 그래서 많은 문제를 푸는 것도 장애가 됩니다. 정답을 볼 수가 없으니까요.

다른 분들은 어떻게 훈련하시는지 궁금합니다. 인터넷 커뮤니티도 백준이나 여기 알고스팟정도 알고 있는데 쉬운 문제에 대해서는 답변이 빠르게 올라오는 것 같은데 난이도가 약간 높으면 답변이 아예 없습니다. 왜그런지는 잘 모르겠는데 사정상 주변에서 정보를 얻기가 어려워 여기에라도 질문을 올려봅니다. 생각하시기에 효율적이거나 적절한, 혹은 주변의 정황, 대부분에서 하는 방법 등 알려주시면 감사하겠습니다.

정리해보면,

1. 위의 문제에 대한 힌트

2. 알고리즘 문제 풀이 훈련 방법

답변해주신다면 정말 감사하겠습니다^^~~~~~

koosaga   2달 전

1. 아직 안 풀어본 문제라 잘 모르지만 제 기억엔 아마 s가 반환 인자로 들어갔을 겁니다. 자세한 건 아래 솔루션을 참고하세요

http://coders-high.com/solutions/ch2016_offline_so...

2. 문제가 안 풀릴 때 힌트를 받거나 풀이를 보는 건 정도를 맞춘다면 좋은 선택입니다. 댓글 다는 걸 직업으로 하는 사람이 없으니 원래 잘 안달릴 때가 많고요, 구글링을 통해서 공식 풀이를 검색해 보시는 걸 추천해드립니다 (풀이가 꽤 자주 나옵니다)

어떤 분들은 확실히 풀이가 있는 문제 세트를 중심으로 연습하시더라고요, COCI 같은 거.. 아마 또 댓글이 달리지 않을까 싶습니다.

문제 풀이 훈련 방법에 대해서 물어보시는 분들이 많은데, 질문자님을 포함한 많은 분들에게 해 드리고 싶은 말씀이 있다면.. 저도 요즘 어느 수준 이상의 문제를 푸는 데 어려움을 겪고 있는데, 저는 작년에도 그랬고 제작년에도 어느 수준 이상의 문제를 푸는데 어려움을 겪었기 때문에, 그냥 하다보면 나아지겠거니 하면서 문제를 풉니다. 그리고 실제로 그러다 보면 나아집니다. 훈련 방법의 문제로 실력이 안 느는 경우는 거의 없고, 그 마저도 안좋은 훈련을 하다 보면 알아서 본인의 문제점을 파악하게 되기 때문에 개선할 수 있습니다. 그냥 많이 문제를 푸시면 됩니다.

koosaga   2달 전

약간 첨언을 하자면 최소 시간으로 최대 실력을 얻는 방법에 대해서 한번 생각해 보시면 좋을 거 같습니다. 풀이를 많이 보면 안 보는 것보다 실력이 빨리 늘긴 하는데 남는 건 별로 없습니다. 이거는 사람마다 다 다르니 직접 많이 해 보시고 어느 쪽이 효율적인지 한번 저울질해보시는 걸 추천드립니다. 

dkwkekzz   2달 전

좋은 댓글 감사드립니다^^

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