[Swift] 백준 8958번 OX퀴즈
문제 출처: 백준 8958번 OX퀴즈
문제
풀이
반복분을 통해 O가 반복될수록 카운팅을 증가시키고, X일 경우 카운팅을 초기화해서 간단하게 풀 수 있는 문제입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/// 테스트 케이스
let N = Int(readLine()!)!
/// 테스트 케이스 길이의 배열
var arr = Array(repeating: 0, count: N)
for i in 0..<N {
var count = 0
let line = readLine()!
// 입력받은 테스트케이스를 순회
for index in line {
// O가 나온 횟수에 따라 count증가
if index == "O" {
count = count + 1
arr[i] += count
}
// X일 경우 count 초기화
if index == "X" {
count = 0
}
}
// 결과 출력
print(arr[i])
}
- 테스트 케이스를 Int 형으로 입력받고, 정답 저장과 출력을 위해 테스트 케이스 길이만큼의 배열을 선언 및 초기화합니다.
- N만큼 반복문을 실행해 문자열을 입력받습니다.
- 문자열을 순회하면서 점수를 카운팅 합니다.
중간에 X가 나올 경우 증가했던 점수가 초기화되기 때문에 이 부분만 유의하시면 풀기 쉬웠던 문제였습니다.
이렇게 풀 경우 메모리: 64048 KB, 시간: 8 ms 결과가 나오게 됩니다.
댓글남기기