codility_lesson03_2)PermMissingElem

2) PermMissingElem (18.05.24)



첫 번째 코드는 19일에 한 듯?




이건 두번째 코드 다음에 나온 결과!
배열 길이가 최대일때 음수값이 나왔는데 아마 쓰레기값인듯?


바로 해결법을 발견!
보니까 길이 곱하기 길이를 했을 때, 최대값일 경우 int 범위가 넘어서는 걸 알 수 있었다.



이건 처음 했던 코든데 문제 똑바로 안보고 고민하다가 바보짓함


문제 다시 보고 새로 짠 코드!! 근데 범위 문제로 100점 실패


숫자들의 합 공식을 쓰는데 int 에서 2로 나누는게 홀수일때 문제가 생길 수 있다는 것도 발견!
일단 합 공식을 나눈 후, 짝/홀수를 나눠줬다.

음.. 그냥 공식보다 1부터 길이+1까지 반복문 돌려서 더해주는게 나았으려나?


* 1부터 n 까지의 합 : (n*(n+1))/2;
* int 범위 : -2,147,483,648 ~ 2,147,483,647 => 4byte(32bit)

댓글

이 블로그의 인기 게시물