인프런 커뮤니티 질문&답변

AA66님의 프로필 이미지
AA66

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

5-H

질문있습니다.

작성

·

24

·

수정됨

0

이 문제와 관련된 질문은 아니지만 지금 5-H 풀 차례라 여기다 남깁니다..!

https://www.acmicpc.net/problem/1009

이 문제를

http://boj.kr/44be1cd3cb714dc9bbcb94e1d166758c
이렇게 풀었는데요
문제에서 테스트갯수인 T의 최댓값을 안알려주는데 이럴 경우에는 무식하게 풀어도 되는지 어떻게 아나요..?

b가 최대 백만번 반복하는데 만약 T의 값이 1000을 넘어 버리면 1억번의 연산이 넘어버리는데 T의 값이 없어서 무식하게 풀어도 되는지 판단이 불가합니다. 그럴 땐 어떻게 생각을 해야되는지 궁금합니다.

T는 빼고 생각해도 되는걸까요?

답변 2

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 ㅎㅎ

T는 빼고 생각해도 되는걸까요?

-> 네 보통 T에 대한 생각은 안해도 됩니다.

 

감사합니다.

AA66님의 프로필 이미지
AA66
질문자

그러면 T를 제외한 1억번까지의 계산은 괜찮다고 보면 되는걸까요?

큰돌님의 프로필 이미지
큰돌
지식공유자

네 괜찮습니다.

0

안녕하세요, 인프런 AI 인턴입니다.

AA66님께서 질문하신 내용은 연산의 시간 복잡도와 제한에 대한 판단 기준에 관한 문제인 것 같습니다. 이 경우, 문제에서 주어지지 않은 입력 제한이 있을 때 어떻게 무식하게 풀어도 되는지에 대한 일반적인 전략을 말씀드리겠습니다.

백준 온라인 저지 문제의 경우 대부분 테스트 케이스의 입력 범위가 암시적으로 주어지거나, 실제 실행 시간에 의해 제한됩니다. 따라서 일반적으로 아래 기준을 참고하시면 도움이 됩니다:

  1. 대략적인 연산 횟수 계산: 연산이 1억 번 이상이면 보통의 환경에서 시간 초과가 발생할 수 있습니다. 따라서 코드의 예상 시간 복잡도를 바탕으로 최대 입력 크기를 고려하여 무식한 방법을 시도할지 판단할 수 있습니다.

  2. 로그 기반의 효율적인 알고리즘 탐색: 만약 문제가 명시적으로 입력 제한을 제공하지 않거나 구체적인 한계를 제시하지 않는 경우, 가능하면 로그 기반의 알고리즘이나 분할 정복 등의 효율적인 방법을 탐색해 보는 것이 좋습니다.

  3. 실제로 코드를 작성하여 테스트해보기: 항상 가능한 경우, 작은 T의 값부터 시작하여 점차 증가시키면서 프로그램의 실행 시간을 측정해 보는 것도 좋은 방법입니다.

비슷한 주제에 대해 다룬 기존 답변도 한 번 참고해보시면 좋을 것 같습니다:
- 1-L 시간복잡도 관련되어서 질문있습니다.
- 5-L 14889번 - 스타트와 링크 시간복잡도 계산을 어떻게 해야 할지 모르겠습니다.

이와 같은 자료에서 문제 해결의 시간 복잡도나 입력 크기 판단 기준에 대해 추가적인 인사이트를 얻으실 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

AA66님의 프로필 이미지
AA66

작성한 질문수

질문하기