inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

6-I

6-I 질문드립니다

89

문예찬

작성한 질문수 17

0

안녕하세요 큰돌님. 덕분에 많은 도움 받으며 공부하고 있습니다. 공부 중에 6-I 파닭파닭 문제에서 질문이 생겼습니다.

http://boj.kr/a3c8c4df3ccd47429c51f910440f47d1

위 코드가 제가 제출한 코드인데요, 라면에 들어갈 남은 파의 길이를 계산하는 부분에서 저는 전체 파길이에서 사용한 파길이를 빼는 로직말고 나머지연산으로 계산하는 게 먼저 떠올라 나머지 연산을 통해 계산했습니다.

 

제가 생각했을 때는 두가지 경우 동일한 결과를 보여야 하는데 이 부분만 큰돌님처럼 전체에 파닭에 사용한 파 길이를 빼는 방식으로 바꾸니 정답이 맞더라구요.. 나머지 연산을 할 때 left가 0이 되는 경우도 따로 처리를 해줘서 문제가 없다고 생각했는데, 틀린이유가 뭘까요?

c++ 코딩-테스트

답변 2

0

큰돌

안녕하세요 예찬님 ㅎㅎ

항상 열심히 하시네요 ㅎㅎ 화이팅입니다.

저코드에는 다음과 같은 반례가 있습니다.

 

4 5

10

10

10

10

답 : 15 / 예찬님 : 0

 

확인해보시겠어요?

 

감사합니다.

0

문예찬

아 이해했습니다. 알려주신 반례에서 하나의 파닭에 들어가는 파의 길이는 5라서 5개의 파닭에 파가 길이 5씩 들어가는건데 저는 각 파가 모두 5로 떨어지는 부분은 파닭에 들어갈거라고 잘못 생각했네요.

 

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

1

큰돌

그쵸 ㅎㅎ 그런 반례가 있었습니당 ㅎㅎ 또 질문있으시면 질문주세용~

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 문예찬님.

6-I 파닭파닭 문제와 관련해서 질문해주신 내용을 보니, 남은 파의 길이를 계산하는 부분에서 문제가 발생하신 것 같습니다. 나머지 연산을 사용하여 구현하셨는데도 틀렸던 이유는 다음과 같은 몇 가지 원인이 있을 수 있습니다.

  1. 모듈로 연산의 특성: 나머지 연산을 사용할 때, 배분이 정확히 떨어지지 않는 경우(특히 a[i] % ans가 되는 과정에서) a[i]ans의 정수배가 아닌 경우, 계산이 틀리게 나올 수 있습니다. 즉, ret += a[i] - (a[i] / ans) * ans; 방식과 a[i] % ans 방식은 동일한 결과를 보장하지 않을 수 있습니다.

  2. 경계 조건의 누락: 특정한 경우의 나머지를 계산할 때, 추가적인 검사가 필요할 수도 있습니다. 특히 a[i] % ans에서 ans0에 가까운 값이 되거나 오버플로 상태에 가까운 범위일 때도 그렇습니다.

  3. 사용하는 자료형의 범위: 나머지 연산을 수행할 때, overflow가 발생하거나 다른 자료형 범위 관련 오류가 발생할 수도 있습니다. 이는 특히 파의 길이(a[i])가 매우 크고 ans이 작은 경우에 해당할 수 있습니다.

이 문제들은 코드를 정확히 분석하고 구체적으로 테스트케이스들을 돌려보며 검토를 해 볼 필요가 있습니다. 기존의 방식처럼 전체 파 길이에서 사용된 파를 빼는 방식은 상대적으로 범위 관련 문제나 경계 오류에서 자유로울 수 있습니다.

유사한 질문과 답변을 참조하여 더 깊이 이해하시기 바랍니다. 또한, 다음 링크에서 관련 질문과 설명을 참고하실 수 있습니다:

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

2-I) 왜 이 문제가 그래프이론 카테고리에 있는지 잘 모르겠습니다.

0

21

2

2주차 개념#12 트리 순회

0

20

2

백준사이트가 종료된다고 합니다.

0

240

2

백준 서비스 종료

9

769

1

sk 하이닉스 코테 대비

0

358

2

3-G 최댓값 질문

0

50

1

모듈러 연산 값이 10이 아닌 경우도 있지 않나요?

0

82

2

3-I 코드 질문드립니다.

0

62

2

3-N 질문 있습니다.

0

66

2

학습방법

0

100

2

4-H 질문 있습니다 (코드 리뷰)

0

66

2

코딩테스트 어디까지 준비해야 하는지 질문이 있습니다.

0

165

2

2-O 반례가 무엇일지 어떤 부분이 틀렸는지 잘 모르겠습니다.

0

69

2

2주차 개념 #4-2. 인접행렬 질문있습니다.

0

64

2

1-A 문제풀이 후 궁금한 점이 생겨서 질문드립니다.

0

49

2

조합 재귀 풀이 확인 해주시면 감사하겠습니다.

0

67

2

함수별 시간복잡도

0

72

2

3-h 질문입니다.

0

49

1

안녕하세요 선생님. 시간 복잡도 4번 질문있습니다.

0

52

2

1-I 문제 질문 드립니다.

0

76

2

2-P 질문입니다.

0

56

1

mac에서 시작하기 관련

0

88

2

5-Q 질문

0

63

2

풀이 코드 질문

0

64

2