• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

질문입니다!

21.10.05 18:35 작성 조회수 147

0

N,M=map(int, input().split())
ch = [0] * (N+M+1)
max = 0
for i in range(1, N+1):
  for j in range(1, M+1):
    ch[i+j] += 1

for i in range(N+M+1):
    if ch[i] > max:
      max = ch[i]

for i in range(N+M+1):
    if ch[i] == max:
      print(i, end=' ')
안녕하세요!
풀다가 중간에 막히는 부분이있어서 질문드립니다.

두번째 단락 for문 돌때 저는 if ch[i+j]를 max값과 비교했는데 선생님께서 cnt[i]와 max값을 비교하셨더라구요.
이미 cnt리스트가 i+j 인덱스값으로 이루어진 거고 거기서 나온 횟수만큼 +1을 다 한상태니까 Max값 비교도 cnt[i+j]로 해야되는거 아닌가요? 제가 어느부분을 놓치고 있는건지 헷갈립니다. 답변 부탁드립니다! (저는 리스트 이름을 ch라고 썼습니다 ㅎㅎ)

답변 1

답변을 작성해보세요.

0

안녕하세요^^

위쪽 2중 for문의 i+j의 값은 최대 N+M까지의 숫자입니다. 

두 번째 for문의 i가 N+M 숫자까지 돌면서 ch 배열의 값들을 확인하고 있는 것입니다.