요구능력 : 반복문의 활용
코드설명 :
이 문제는 수를 연속해서 더해줘야된다는게 핵심이다.
연속해서 더해주다가 원하는 수가 나오려면 시작지점이 계속해서 바뀌는 방법이 있다.
예제
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)
'Algorithm > 문제풀이_백준' 카테고리의 다른 글
[Swift][DFS] 백준 16929번 (Two Dots) (0) | 2021.12.31 |
---|---|
[Swift][DP] 백준 12865 (평범한 배낭) (0) | 2021.12.28 |
[Swift][BruteForce] 백준 15658번 (연산자 끼워넣기 (2)) (0) | 2021.12.27 |
[Swift][BruteForce] 백준 14888번 (연산자 끼워넣기) (0) | 2021.12.24 |
[Swift][DP] 백준 15989번 (1, 2, 3 더하기 4) (0) | 2021.12.18 |
댓글