티스토리 뷰
링크 : https://www.hackerrank.com/challenges/sherlock-and-array/problem
문제> 임의의 기준점을 잡고 좌, 우의 합이 같다면 YES, 기준점의 좌, 우 합이 같은게 없다면 NO를 출력하는 문제.
*단, n이 1일 경우 YES를 출력.
해결방법.
*기준이 되는 숫자의 좌, 우 합이기 때문에 좌와 우의 사이에 1개가 필요.
left의 인덱스는 0, right의 인덱스는 n-1부터 시작.
left를 우선으로 인덱스를 증가시키면서 합해 나다가다가 left의 합이 right보다 커질 때 right의 인덱스를 감소시켜 합을 증가.
right의 인덱스와 - left인덱스가 2보다 클때(기준값 포함 두 수의 차이는 2)까지 반복.
최종 right의 합과 left의 합이 같다면 YES. (혹은 n이 1일때 YES)
그 외는 NO로 반환.
'주간 알고리즘풀기' 카테고리의 다른 글
[180112][HackerRank](C#)maximum-draws (0) | 2018.01.13 |
---|---|
[180111][HackerRank](C#)Restaurant (0) | 2018.01.13 |
[180109][HackerRank](C#)Permuting Two Arrays (0) | 2018.01.09 |
[180105][HackerRank](C#)Army Game (0) | 2018.01.05 |
[180104][HackerRank](C#)The Full Counting Sort (0) | 2018.01.05 |
댓글