본문 바로가기
Algorithm/문제풀이_백준

[Swift][BruteForce] 백준 2003번 (수들의 합 2)

by Joahnee 2021. 12. 28.

요구능력 : 반복문의 활용

 

코드설명 : 

 

이 문제는 수를 연속해서 더해줘야된다는게 핵심이다.

연속해서 더해주다가 원하는 수가 나오려면 시작지점이 계속해서 바뀌는 방법이 있다.

예제

10 5

1 2 3 4 2 5 3 1 1 2 를 보면

5가 나오려면 2 + 3, 5, 3 + 1 + 1이 나와야 한다.

1에서 시작하면 뒤에 아무리 더해도 5가 안나온다.

2에서 시작하면 2 + 3이되서 5가된다.

3에서 시작하면 다음에 4를 더하니 불가능하다.

.

.

5에서 시작하면 5니까 뒤에 안더해도 나왔다.

3에서 시작하면 3 + 1 + 1이니까 5가 나온다.

.

.

이렇게 풀면된다.

 

 

후기 : 간만에 간단한문제를 푼거같다.

let nm = readLine()!.split(separator: " ").map{Int(String($0))!}
let n = nm[0]
let m = nm[1]
let arr = readLine()!.split(separator: " ").map{Int(String($0))!}

var count = 0
for i in 0..<n{
    var sum = 0
    for j in i..<n{
        sum += arr[j]
        if sum == m{
            count += 1
        }
    }
}
print(count)

댓글