출처 : https://www.acmicpc.net/problem/2357

정답 : https://github.com/stemp12/study/blob/master/acmicpc.net/2016.01/2357.cpp


저번에 풀어본 최소값과 똑같은 문제이다. 다만 이번엔 최대값이 추가되었다. 알고리즘이 완전히 동일하기 때문에 생략한다.

약간의 팁아닌 팁을 적자면, 나는 함수의 인자로 vector<int> &tree라고 썼는데, 참조연산자를 빼버리고 vector<int> tree해도 정답은 나온다. 

차이는 메모리차이이다. 참조연산자를 주게되면 주소값이 계속 전달된다. 그러나 단순 tree만주면 재귀를 하는 과정에서 자꾸 복사를 하게 된다. 그러면 메모리를 더 사용하게 된다. 이는 알고리즘 문제풀때뿐만이 아니라, 실제 프로젝트를 진행함에 있어서도 주의를 해야한다.

자바로 하는 프로젝트의 경우 상관이 없겠지만, 타이젠처럼 C언어를 사용하거나, 안드로이드의 네이티비를 만들고 있
다면 이런점은 반드시 생각하며 코딩해야 한다. 메모리를 줄이는 것은 매우 중요한 일이다.

그리고 하나더 현재 입력이 10만인데, 10만번을 입력받으면 매우 느리다. 이럴때는 C++이라고 할지언정 cin, cout보다는 scanf와 printf를 사용해야 한다.

시간적으로 굉장히 큰 차이가 있다. 그리고 요번에 본 문서에는 endl의경우 버퍼를 자동적으로 비워준다고 하니 기억해둬야겠다.

'Algorithm' 카테고리의 다른 글

[AC] 1018 체스판 다시 칠하기  (0) 2016.01.28
[AC] 2512 예산  (0) 2016.01.28
[AC] 2632 피자판매  (0) 2016.01.26
[AC] 1931 회의실배정  (0) 2016.01.26
[AC] 2304 창고 다각형  (0) 2016.01.26

+ Recent posts