N개의 실수가 입력되었을 때 연속으로 입력된 값들의 곱 중에서 최대값을 출력하는 문제이다.
실수가 N개가 최대 10,000이다. 이 경우 배열에 입력받아 첫 번째 인덱스 부터 곱해서 최대의 값을 구하면 시간초과가 난다. 이 경우 시간 복잡도가 N!이다. 맞나???
결론은!!입력을 받자마자 바로바로 처리를 해줘야 된다. 시간복잡도 N으로 풀어야함.
풀이는 입력되는 값들을 곱해나가면서 현재 까지의 곱의 결과가 1이하면 더 이상 곱해봤자 의미가 없다.
그래서 현재의 곱셈의 결과가 1 이하면 1로 초기화 해준 후 다음부터 다시 곱해나간다. 곱해나가면서 최대값을 체크해주면 끝!!
정답코드
'SW 업무 관련 > 백준' 카테고리의 다른 글
[C언어] 2531. 회전 초밥 (0) | 2019.06.09 |
---|---|
[C언어] 2467. 용액 (0) | 2019.06.08 |
[C언어] 2805. 나무 자르기 (0) | 2019.06.05 |
[BAEKJOON] 2961_도영이가 만든 맛있는 음식_C언어 (0) | 2019.05.13 |
[C언어 ] 2665. 미로 만들기 (430) | 2018.10.21 |