Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- java.lang.IllegalStateException
- cmd2
- 포너블
- 애너그램 그룹
- 코틀린
- cmd1
- tlqkf
- Docker
- pwnable.kr
- kotlin
- Make sure the Cursor is initialized correctly before accessing data for it.
- python
- 6566
- 나이순 정렬
- 페니빙
- pwable.kr
- 클라우드란?
- UNIQUE constraint failed
- 10814
- col -1 from CursorWindow
- pwnable
- Couldn't read row 0
- 액션바 필요없숴
- 백준
- SQLiteConstraintException
- 클라우드가 뭐야
- 블록체인
- Drive-By-Download
- 파이썬
- 쏘큩
Archives
- Today
- Total
푸르미르
[python]8958.OX퀴즈 본문
OX문제이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
case=int(input()) #테스트 케이스 개수 입력
score_list=[] #한 케이스의 OX결과
total=0 #한 케이스의 총점
xloc=0 #바로 전의 X의 location
for i in range(case):
quizResult=input()
quizResult.upper() #혹시 모를, 대문자화
for j in range(len(quizResult)):
if quizResult[j]=='O':
total+=quizResult.count('O',xloc,j+1) #이 문제의 키 포인트
else:
xloc=j #이 문제의 키포인트2
print(total)
total=0 #주의!
xloc=0 #주의!
|
cs |
이 문제에서 까다로웠던 점은 한 케이스당 점수를 계산하는 것인데, 문자열에 O가 등장했을 때, 그 O까지 연속된 O의 개수를 계산해야했다는 것이다. 코딩테스트 알고리즘에 익숙치 않다면 처음에 조금 힘들었을 문제다. 왜냐하면 중간에 X가 나왔다면 그것까지 고려해야 하기 때문이다. 그래서 사용한 함수는 count라는 함수이다.
전체문자열.count(검색할 문자열 및 문자, 시작위치, 끝위치)
count함수는 찾을 문자열 및 문자가 총 해당 전체 문자열에서 몇개인지 알려주는 함수이다. 아예 count(검색할 문자열 및 문자)로 해서 전체문자열의 index 0에서 끝까지 검색을 할 수 있다. 여기서 시작위치를 X가 마지막으로 나온 문자열 index로 해주고 끝위치를 해당 인덱스의 +1을 해주어야 한다. 이때 X가 마지막으로 나온 위치는 코드의 12번째 줄처럼 갱신해준다.
또 하나의 케이스가 끝나고 다시 0으로 되돌려야 할 변수들을 0으로 다시 되돌리는 것을 잊지 말아야한다.
'Baekjoon Online Judge' 카테고리의 다른 글
[python]3052.나머지 (2) | 2021.01.01 |
---|---|
[python]2577.숫자의 개수 (0) | 2021.01.01 |
[python]2562.최댓값 (0) | 2021.01.01 |
[python]10818.최소, 최대 (0) | 2021.01.01 |
[python]1546.평균 (0) | 2021.01.01 |