인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

지성님의 프로필 이미지

작성한 질문수

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

1-O

1-O 4375 질문있습니다!

해결된 질문

작성

·

98

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

http://boj.kr/530b59b66e6b4c31bd01bbebc065f5e4

안녕하세요 큰돌님

 

9901 테스트케이스를 통과하지를 못 하는데 이유를 못 찾겠어서 문의드립니다!

 

답변 2

0

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

안녕하세요 지성님 ㅎㅎ

모듈러 연산을 적절히 집어넣어야 합니다.

#include <bits/stdc++.h>
using namespace std;

int main() {
    int n;
    while (scanf("%d", &n) != EOF) { 
        int m = 1, cnt = 1;
        while (m % n != 0) { // n으로 나누어떨어질 때까지 반복
            m = (m * 10 + 1) % n; // 111... 형식의 수를 나머지로 유지
            cnt++;
        }
        cout << cnt << "\n";
    }
    return 0;
}

이렇게 해보시겠어요? 주석 제가 달아놨습니다 😃

0

인프런 AI 인턴님의 프로필 이미지

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

지성님, 테스트케이스가 통과되지 않는 경우는 주로 알고리즘의 논리 오류나 특정 케이스에 대한 처리 부족 때문에 발생할 수 있습니다. 9901 같은 경우는 특수한 숫자 패턴을 가지고 있을 수 있으므로 정확한 divisibility rule을 사용해야 합니다.

이와 관련된 해결책으로 도움을 줄 수 있는 유사한 질문과 답변들을 아래에서 확인할 수 있습니다:

  1. 2-I 런타임 에러 질문

    • 이 질문에서는 정수형 overflow와 자료형의 범위를 고려한 처리가 중요한 이슈였습니다. 문제에서 주어지는 숫자의 범위에 따라 자료형을 선택할 때, 충분한 범위를 지원할 수 있는지를 고려해야 했습니다.
  2. 2-S 코딩 질문: 런타임 에러 해결법

    • 배열 크기 및 초기화가 런타임 에러의 주요 원인이었습니다. 정확한 메모리 할당과 초과 방지를 위해서 코드를 재검토해볼 필요가 있음을 설명합니다.
  3. 1-G 질문 있습니다!

    • 작은 문자열 조작과 같은 자잘한 실수들이 문제 해결에 방해가 될 수 있음을 보여줍니다.

테스트 케이스에서 문제의 원인을 찾기 위해 다음 사항들을 점검해보는 것이 좋습니다:

  • Mod 및 나머지 연산을 정확히 사용할 것: 특히, 반복적인 연산에서 나머지 연산이 의도치 않은 결과를 내기 쉬우므로, 임시 결과가 예상보다 커지지 않는지를 항상 확인해야 합니다.
  • Loop 및 조건문에서 특정 조건이나 특수한 값들이 정확히 처리되고 있는지 확인합니다.
  • 자료형의 크기: 처리하려는 숫자의 크기가 충분히 처리될 수 있는지를 확인해야 합니다.

위의 링크와 자료를 참고해서 코드를 점검해 보시고, 혹시 다른 문제가 있거나 추가 질문이 있다면 자유롭게 물어보세요. 질문을 계속 달아주시면 큰돌님께서 더 구체적인 조언을 드리실 것입니다.

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

지성님의 프로필 이미지

작성한 질문수

질문하기