whgkdrjs4321   5년 전

알고리즘 대회 등에서 보면 여러 조건들이 나옵니다. 백준도 마찬가지고요.

 예를 들어, 시간 제한이 1초라든가 <15780 - 멀티탭 충분하니?>처럼 조건에 배열의 범위나 수의 범위가 주어지는 것처럼요.

실제 알고리즘 대회에서는 수의 범위에 대한 조건을 if문 등을 써서 예외조건으로 빼주어야 하나요?

그리고 시간 제한 등의 문제는 어찌 해결해야 할까요?

고수님들의 답변을 부탁드립니다.

jaehoo1   5년 전

수의 범위에 맞는 입력만 들어오게 되있습니다.

15780 문제에서는

입력

입력의 첫째 줄에 스터디에 온 학생의 수 N(1 ≤ N ≤ 100)명 멀티탭의 수 K(1 ≤ K ≤ 100)가 주어진다. 이후 두 번째 줄에 각 멀티탭 구의 수 A[i](3 ≤ A[i] ≤ 8) 가 주어진다. 


라고 되있었는데요, 채점 프로그램이 N<0 또는 N>101을 입력으로 집어넣는 경우는 없습니다.

K 역시 범위를 벗어난 입력이 들어오지 않고, A[i]역시 마찬가지 입니다.

채점 프로그램안에는 예제 입/출력 말고도 수많은 (조건에 맞는)테스트 케이스들이 담겨져 있습니다.

이 테스트 케이스 중 하나라도 문제에서 주어진 제한시간 내에 통과를 하지 못하면 시간초과를 받게 됩니다.

좀더 알아보시고 싶다면

https://www.acmicpc.net/help/p...

을 참조하세요

djm03178   5년 전

범위가 주어지지 않는 경우는 있어도, if문으로 따로 빼줘야 하는 경우는 없습니다. 범위가 주어지면 모든 입력은 반드시 그 범위 안에 들어오니까 걱정하지 않아도 되고, 안 주어지는 것은 적당히 평범한 자료형을 쓰면 된다는 뜻이니까 역시 걱정할 필요가 없습니다.

시간 제한은 시간복잡도 등을 분석하고 자꾸 짜보면 어떤 제한의 어떤 복잡도에서 대략 어느 정도 시간이 나온다는 것을 예측할 수 있게 됩니다.

whgkdrjs4321   5년 전

친절한 답변 감사드립니다.

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