dmswl022329   2년 전

num 배열은 숫자 x 가 있으면 1을 아니면 0을 가지는 배열입니다.


i 와 x - i 가 둘다 존재하면 개수를 1씩 세주는 코드인데


i 와 x - i 의 순서가 뒤바뀌면 2번씩 중복해서 세기 때문에 

x의 절반만큼만 세도록 했습니다.


그런데도 중복해서 센뒤 2로 나누는건 맞는반면

절반까지만 세는건 틀립니다.


이유가 있을까요?


i <= x/2 까지 해봤지만 틀렸습니다.


tlsdydaud1   2년 전

x가 홀수일 경우 i = x/2인 경우도 세야 합니다.

예를 들어 x=5라면 x/2 = 2이므로 아래쪽 코드에서 i는 0, 1일 때만 반복하고, num[2]와 num[3]이 모두 1이라면 그 경우를 세지 않습니다.

dbstmddbs4   2년 전

3

1 6 11

12

답 : 1

반례입니다

dmswl022329   2년 전

<= x/2 로 해버리면

x/2 + x/2 = x 를 세버려서 하나를 중복으로 세고

< x/2 로 해버리면

홀수일경우에 제대로 못세는군요

그냥 다 세고 절반하는게 최고였구만...

댓글을 작성하려면 로그인해야 합니다.