inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비

9. 모두의 약수(제한시간 1초)

9번 모두의 약수 for문 질문

291

sang ji Choi

작성한 질문수 23

0

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

안녕하세요 처음 하는 c++수업인데 좋은 강의 잘 듣고 있습니다.

선생님께서 말씀하신 i의 배수를 통해 개수를 구한다고 하셨는데

for (int i = 1; i <= a; i++)

{

for(int j=i; j<=a; j=j+i)

{

cnt[j]++;

}

for(j=i; j<=a; j=j+i)부분 에서 j=j+i가 어떻게 i배수로 되는지 이해가 되질 않습니다. 제가 알기론 증감 부분인데

그러면 j=j+i에서 i=1, j=1일때 j=1+1로 2가 되면서 1~2로 cnt[1] cnt[2]에만 cnt[j]에 1씩 들어가고

i=2일떄 j=2가 되면서 j=2+2=4가 되는데 그러면

cnt[2]=2 cnt[4]=1이 되는게 맞는건가요?

c++ 코딩-테스트

답변 1

0

김태원

안녕하세요^^

만약 a = 8이라면

i=1일때

j = 1

j = 1 + 1 = 2

j = 2 + 1 = 3

j = 3 + 1 = 4

.

.

j = 7 + 1 = 8

j <= 8이 참일때까지 1씩 증가하면서 반복해 cnt[j]를 1씩 증가시킵니다.

또 i=2일 때

j = 2

j= 2 + 2 = 4

j = 4 + 2 = 6

j = 6 + 2 = 8

j <= 8이 참일때까지 2씩 커지면서 반복해 cnt[j]를 1씩 증가시킵니다.

즉 i=2일때 cnt[2] = 2이고 cnt[4] = 2입니다.

cnt[4]는 i=1일때 이미 한 번 증가했었습니다.

87번 채점 프로그램에 오류가 있는 것 같습니다.

0

91

2

그리디 파트

0

115

2

안녕하세요. 선생님(54번 코드 관련 문의)

0

143

2

테스트 파일 exit_coe_1, time_limit_exceeded 질문

0

143

1

C언어로 코드를 짜면 채점 시에 한 문제 빼고 시간 초과가 발생하는데 해결하는 방법이 있을까요?

0

173

1

19번 질문있습니다

0

123

1

6번 관련 채점오류입니다

0

88

2

22번 문제는 C로 풀어주신 건가요 C++로 풀어주신 건가요?

0

166

2

dev C++ 콘솔창 바로 닫힘

0

245

1

최신화하기

0

171

1

채점이 안되요...

1

261

1

안녕하세요 강사님 정렬에 대해서 설명이 조금 더 듣고 싶습니다.

0

113

1

45번 공주구하기 문제를 list를 이용해서 이렇게 풀어도 될까요?

0

155

1

39번 두 배열 합치기 문제 채점 오류인가 코드 오류인가

0

155

0

채점기에서 틀렸다고 나오는데 이유를 모르겠습니다.

0

150

2

해당 강의에서 C언어로만 진행하는 강의 문의 건

0

145

2

87번 문제 섬나라 아일랜드 질문

0

128

1

16번 문제에서 직접 답을 대입하면 정답이 나오는데 채점에서 wrong answer가 나옵니다.

0

149

1

40번 교집합 문제

0

166

1

43번 뮤직비디오 문제 테스트케이스 4번을 만족 못합니다.

0

170

1

41. 연속된 자연수의 합 문제 질문있습니다.

0

166

1

질문있습니다.

0

193

2

시간초과가 나요

0

172

1

43번 문제 3 ~ 5번에 문제가 있는것 같습니다.

0

249

1