article thumbnail image
Published 2021. 11. 21. 16:21

# Sherlock and Array (Search)

[문제]

 

 

[코드]

string balancedSums(vector<int> arr) {   
    int leftSum = 0;
    int rightSum = 0;
    
    for(int i=0; i < arr.size(); i++)
        rightSum += arr[i];

    for(int i = 0; i < arr.size(); i++)
    {
        rightSum -= arr[i];
        if(leftSum == rightSum)
            return "YES";
        leftSum += arr[i];
    }
    return "NO";
}

 

 

[코드설명]

주어진 정수 배열에서 기준의 좌, 우 원소들의 합이 같은지 확인하는 문제다.

기준(arr[i])에서의 leftSum과 rightSum을 구한 후, 비교해 풀었다.

 

원소들의 전체 합을 구한 후에 arr[i]만큼 뺀 것을 rightSum으로 두었고,

leftSum과 rightSum을 비교한 후에 leftSum에 arr[i]를 더한 것을 leftSum으로 두었다.

 

arr를 순차적으로 탐색해가다가 leftSum과 rightSum이 같아지는 때에서 "YES"를 반환했고,그렇지 않고 for문이 종료되면 "NO"를 반환했다.

 

 

 

[채점 결과]

 

 

 

 

 

'알고리즘' 카테고리의 다른 글

[BOJ] 10871: X보다 작은 수  (0) 2022.09.21
[HackerRank] Mini-Max Sum  (0) 2021.11.21
[HackerRank] Plus Minus  (0) 2021.11.05
[HackerRank] Closest Numbers  (0) 2021.11.05
[HackerRank] Find the Median  (0) 2021.10.08
복사했습니다!