codility_lesson03_2)PermMissingElem
codility - lesson
3. TimeComplexity
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)
댓글
댓글 쓰기