13458번 - 시험 감독
코드의 위쪽에 주석처리한 부분이 처음 생각대로 한 것이고 결과를 보고나서 조금 고쳐본게 밑에있는 코드입니다.
메모리가 많이 들 것 같은 배열은 Ai들을 담을 A 뿐이고
시간이 덜 들게 하기 위해서 A는 Ai를 저장하기 위해서 한번, 계산하기위해서 한번, 총 두번만 순회하도록 하였는데
메모리는 148896KB 이고 시간은 960ms 이 걸렸습니다.
왜 C++ 에서 int A[1000000] 을 선언하고 쓴 것보다 N만큼의 크기인 배열을 선언한 제 코드가 더 메모리를 많이 쓸까요..? ㅠㅠ
그리고 A를 두번만 순회하는데 시간이 오래걸리는 이유도 궁금합니다..
파이썬의 동작 원리에 대해 알아보시는 게 좋을 것 같습니다.
파이썬은 인터프리터 언어이기 때문에 컴파일 언어인 C++과는 근본적으로 아주 많이 다릅니다.
https://cjh5414.github.io/about-python-and-how-python-works/
http://jakevdp.github.io/blog/2014/05/09/why-python-is-slow/
그리고 크기가 N이 100만 이하인 문제에서 N인 배열을 선언하는 것과 100만인 배열을 선언하는 것은 아무런 차이가 없습니다. 어차피 메모리 사용량은 최댓값만 계산하기 때문입니다.
감사합니다 !
댓글을 작성하려면 로그인해야 합니다.
jhs0465 4년 전
코드의 위쪽에 주석처리한 부분이 처음 생각대로 한 것이고 결과를 보고나서 조금 고쳐본게 밑에있는 코드입니다.
메모리가 많이 들 것 같은 배열은 Ai들을 담을 A 뿐이고
시간이 덜 들게 하기 위해서 A는 Ai를 저장하기 위해서 한번, 계산하기위해서 한번, 총 두번만 순회하도록 하였는데
메모리는 148896KB 이고 시간은 960ms 이 걸렸습니다.
왜 C++ 에서 int A[1000000] 을 선언하고 쓴 것보다 N만큼의 크기인 배열을 선언한 제 코드가 더 메모리를 많이 쓸까요..? ㅠㅠ
그리고 A를 두번만 순회하는데 시간이 오래걸리는 이유도 궁금합니다..