코드가 조금 길고 조잡하긴 하지만....
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
import sys
exist = []
cnt = 0
for i in range(8):
exist.append(sys.stdin.readline())
if i % 2 == 0:
j = 0
for j in range(8):
if j % 2 == 0:
if exist[i][j] == 'F':
cnt += 1
j += 1
else:
j = 0
for j in range(8):
if j % 2 == 1:
if exist[i][j] == 'F':
cnt += 1
j += 1
print(cnt)
|
cs |
이런 식으로 나는 일단 첫 번째 try에서 문제를 해결했다.
다만, 시간이 84ms로 조금은 느린 시간대를 가졌다.
당연히, 그럴 수밖에 없는 것은, 이중 for문에 의해서 반복이 여러 번 돌아야 하고, if문도 여러 개 있어서 각각에 대한 조건을 찾는 데 있어서 시간이 걸리기 때문이다.
이를 조금 해결할 수 있는 부분은 다음의 코드처럼 range()의 값에 조건을 주면 된다.
1
2
3
4
5
6
7
8
9
10
11
12
|
count = 0
for i in range(1,9):
n = input()
if i % 2 == 1:
for k in range(0,7,2):
if n[k] == 'F':
count += 1
else:
for k in range(1,8,2):
if n[k] == 'F':
count += 1
print(count)
|
cs |
이렇게 range()에 건너뛰기의 조건을 주게 되면, 별도로 j라는 변수를 만들지 않아도 되며, if 조건문도 줄일 수 있게 된다.
실행시간 또한 68ms 정도로 확 줄어드는 것을 볼 수 있게 된다.
'코딩 문제풀이 및 연습 > Python 연습' 카테고리의 다른 글
[백준] 5596_시험 점수 파이썬 (0) | 2021.09.11 |
---|---|
[백준] 5893_17배 파이썬 (0) | 2021.09.11 |
★파이썬 실행시간 나타나게 하는 방법★ (0) | 2021.08.25 |
[백준] 10773_제로 파이썬 (0) | 2021.08.25 |
[백준] 10828_스택 파이썬 (0) | 2021.08.25 |