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

ㅎㅅ님의 프로필 이미지
ㅎㅅ

작성한 질문수

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

1-O

1-o 시간초과

작성

·

272

0

http://boj.kr/246379b4039146d9bb6c8660ce6e5dfd

입력을 콘솔로바꿨을뿐인데 시간초과가납니다 무슨이유일까요

답변 1

0

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

안녕하세요 ㅎㅅ님 ㅎㅎ

시간초과가 문제가 아니라 로직이 이상한 부분이 있습니다.

자 지금 c를 a로 계속해서 나누죠? 근데 여기서 다시 c를 ++합니다.

    	while(true){
    		if(b % a == 0){
    			cout << c;
    			break;
			}else{
				c = (c * 10) + 1;
				c %= a;
				c++;
			}
		}

 

제 생각에는 ㅎㅅ님은 c를 1111 이런 수로 만들고도 싶은것 + 해당 자릿수를 담당하는 변수 이렇게도 쓰고싶은 생각이신 것 같습니다. 두가지를 분리하셔야 합니다.

다음 코드처럼 111...로 만드는 수 그리고 해당 자릿수를 담당하는 변수를 분리해서 다시 구축 해보시겠어요?

				cnt = (cnt % n * 10 % n) + 1; 
				cnt %= n; 
				ret++;

 

 

또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제가 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.

ㅎㅅ님의 프로필 이미지
ㅎㅅ

작성한 질문수

질문하기