해결된 질문
작성
·
65
·
수정됨
0
안녕하세요 강사님 강의 잘 듣고 있습니다.
강의 듣기 전에 먼저 문제를 풀어보고 있는데
항상 브루트 포스 -> 그리디 -> DP 순으로 접근을 하셔서
저도 동일한 과정으로 문제 풀이를 생각하고 있습니다.
브루트 포스 풀이를 떠올리기는 하는데 혼자 구현을 해보려고 하니 쉽지가 않더라고요.
혼자 코드를 짜보긴 하는데 제출을 해도 애초에 시간 초과라 올바른 코드인지 확인할 수 없고, 브루트 포스로 시간초과나는 문제는 구글에서도 코드를 찾을 수가 없어서 제가 혼자 짠 코드가 제대로 짠 건지 확인하기가 힘들더라고요.
혹시 추후에 브루트 포스 코드도 같이 제공해주실 수 있는지 여쭤보고 싶습니다..
답변 2
1
안녕하세요, eoyeong님!
강의를 열심히 듣고 있는 것 같아 보기 좋습니다!
특히, 브루트 포스 관련 문제가 아니더라도, 브루트 포스 풀이를 직접 구현해 보는 것은 매우 좋은 학습 방식이라고 생각합니다. 왜냐하면 브루트 포스 접근은 문제 해결 능력을 키우는 가장 기본적인 사고 과정이며, 이를 구현까지 해보는 과정은 자연스럽게 브루트 포스 문제를 푸는 실전 연습으로도 이어지기 때문입니다.
말씀해 주신 것처럼, 브루트 포스 풀이가 시간 초과로 인해 정답 여부를 확인하기 어려울 때가 많고, 인터넷에서도 찾기 힘든 경우도 많습니다. 저도 그러한 점을 고려하여, 강의에 나오는 브루트 포스 풀이 관련 코드 업로드 관련해서 업로드하는 쪽으로 검토해 보겠습니다!
다만 업로드하기까지 시간이 걸리므로, 구현한 브루트 포스 풀이가 맞는지 확인하는 법에 대해 알려드리겠습니다. 제출한 코드가 통과하려면 정확성과 효율성을 통과해야 하는데요. 강의에서 브루트 포스 접근을 하지만 코드를 제공하지 않는 경우엔 정확성은 맞으나 효율성을 통과하지 못하는 경우에 해당합니다.
따라서, 백준에 제출하여 시간 초과가 뜬다면 해당 브루트 포스 풀이는 정확성은 맞은 것이니 올바르게 구현했다고 생각할 수 있습니다. 하지만 만약에 틀렸습니다.가 뜬다면 정확성이 틀린 것이니 풀이 코드를 수정할 필요가 있겠습니다!
사실, 시간 초과는 보통 정확성은 맞되 효율성이 부족하다는 의미지만, 작은 입력조차 제대로 처리 못하고 오래 걸리는 코드라면 정확성조차 보장되지 않는 코드일 수 있습니다. 따라서, 시간 초과가 뜬다면 작은 입력에 대해서는 답이 빠르게(연산량이 1억 번 연산 이하 정도로) 나오는지 확인해 볼 필요가 있습니다.
문제 접근과 브루트 포스 관련 풀이 구현에 도움이 될만한 내용들
문제 접근과 브루트 포스 구현에 대해 더 깊이 이해하고 싶다면, 섹션 7의 문제를 푸는 사고과정 (‘실전 문제풀이 2’ 파트 소개)
영상과 자료를 참고해 보시는 걸 추천드립니다. 특히 해당 영상의 09:14
부분에 브루트 포스와 관련된 사고방식을 정리해둔 내용이 있으니, 이 부분을 집중해서 보시면 문제 접근법과 구현에 많은 도움이 될 거라고 생각이 듭니다!
질문에 대해 만족스러운 답변이 되었기를 바랍니다!
추가로 궁금하신 점이나 더 자세한 설명이 필요하시다면 언제든지 말씀해 주세요. 😄
1
안녕하세요, 인프런 AI 인턴입니다.
eoyeong님께서 말씀하신 문제는 코딩 테스트를 준비하는 많은 분들이 공감할 수 있는 부분입니다. 브루트 포스 방식은 가장 직관적이지만, 때로는 시간 복잡도가 높아 실제 문제에서 바로 적용하기 어려운 경우가 많습니다. 이에 대한 딜레마를 해결하기 위해 가능한 몇 가지 방법을 제안드리고자 합니다:
브루트 포스의 이해: 브루트 포스는 가능한 모든 경우의 수를 시도하는 방식으로, 구현을 통해 문제를 정확히 이해하고 문제의 요구사항을 분석하는 데 좋습니다. 처음에는 문제의 작은 하위 문제에 대해 적용해 보세요.
단순한 문제부터 시작: 처음부터 복잡한 문제를 선택하기보다, 간단한 수준의 문제로 시작해 브루트 포스를 적용하고, 점차 복잡한 문제로 나아가는 것이 좋습니다.
참고할 리소스: 브루트 포스에 대해서는 인터넷에 다양한 참고 자료가 있습니다. 유사한 문제의 해답을 찾아보거나, 코딩 테스트 스터디나 커뮤니티에 참여하는 방법도 좋은 선택입니다.
구문 분석 및 디버깅: 코드를 작성한 후 작은 입력값으로 테스트하고, 단계별로 어떤 결과가 나오는지 확인하면서 문제를 파악합니다. 이렇게 하면 브루트 포스의 올바른 작동 여부를 쉽게 확인할 수 있습니다.
기존에 비슷한 유형의 질문에 대한 답변이 있어 관련 링크를 첨부해 드립니다. “저.. 시간복잡도 관련 질문입니다.(로직 거의 비슷한 거 같은데, 시간초과가 나서요)”. 해당 게시물에서는 시간 복잡도 문제 및 브루트 포스와 관련한 문제 해결 방법에 대해 설명합니다.
브루트 포스 코드도 같이 제공될 수 있는지는 강의를 제공하시는 지식공유자님의 결정사항으로, 관련 요청을 강의 댓글이나 질문 게시판을 통해 전달하실 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
답변 감사합니다 :)