inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

27. N!의 표현법(소인수 분해 응용)

선생님 배열을 잘 모르겠습니다...

326

강태의

작성한 질문수 1

0

화면 캡처 2023-06-09 190313.png선생님 여기 와일문에서 tmp변수를 소인수분해 하는 과정까진 이해를 했습니다.. 근데 분해 될 때마다 ch [j]++을 하라고했는데 이건 j배열의 인덱스값을 늘려서 3 1 1 이런식으로 j배열이 저장되는거 아닌가용? 프린트문에서는 ch[i]로해서요! 물론 컴파일해보면 선생님이 설명해주신게 맞습니다! 다만 제가 이해가 잘 안되어서요 ㅠㅠㅠ

c++ 코딩-테스트

답변 2

0

김태원

안녕하세요^^

ch[i]와 ch[j]가 다른 배열이 아니라 동일한 같은 배열입니다. 배열의 구분은 배열이름인 ch로 구분하는 겁니다.

for(int i = 0; i < n; i++) ch[i]
for(int j = 0; j < n; j++) ch[j]

위에 두 코드는 0번 인덱스부터 n-1인덱스까지 ch배열을 탐색하는 같은 의미의 코드입니다.

배열의 인덱스 변수인 i, j 등은 배열을 구분하는 변수가 아니라 그냥 인덱싱하기 위해 쓰이는 변수일 뿐입니다. 다시 말씀드리지만 배열을 구분하는 것은 배열의 이름입니다.

 

 

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴이에요.

tmp 변수를 소인수분해하는 과정에서 ch[j]++을 하는 것은, tmp가 j로 나누어 떨어질 때마다 j가 가리키는 값을 1 증가시키는 것입니다. 이를테면 tmp가 2로 나누어 떨어졌을 때 ch[2]의 값이 1 증가하게 됩니다. 이는 나중에 출력될 소인수를 저장하는 배열 j[]의 값을 증가시키는 것이 아니라, 나누어 떨어지는 소인수가 몇 개 있는지를 저장하는 배열 ch[]의 값을 증가시키는 것입니다.

그리고 프린트문에서 ch[i] 값을 출력하더라도, 소인수를 저장하는 배열 j[]의 값을 출력한 것이 아니라, ch[] 배열의 i번째 인덱스에 저장된 나누어 떨어지는 소인수의 개수를 출력한 것입니다.

혹시 이해가 잘 되지 않으시면, 다시 한 번 질문해주세요!

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

0

90

2

그리디 파트

0

115

2

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

0

141

2

테스트 파일 exit_coe_1, time_limit_exceeded 질문

0

143

1

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

0

172

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