[Python] 백준알고리즘 #1100

r1verfuture·2022년 1월 14일
0

백준알고리즘

목록 보기
95/110

📝 문제

체스판은 8×8크기이고, 검정 칸과 하얀 칸이 번갈아가면서 색칠되어 있다. 가장 왼쪽 위칸 (0,0)은 하얀색이다. 체스판의 상태가 주어졌을 때, 하얀 칸 위에 말이 몇 개 있는지 출력하는 프로그램을 작성하시오.

⌨️ 입력

첫째 줄부터 8개의 줄에 체스판의 상태가 주어진다. ‘.’은 빈 칸이고, ‘F’는 위에 말이 있는 칸이다.

🖨 출력

첫째 줄에 문제의 정답을 출력한다.

⌨️ 예제 입력 1

.F.F...F
F...F.F.
...F.F.F
F.F...F.
.F...F..
F...F.F.
.F.F.F.F
..FF..F.

🖨 예제 출력 1

1

⌨️ 예제 입력 2

........
........
........
........
........
........
........
........

🖨 예제 출력 2

0

⌨️ 예제 입력 3

FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF

🖨 예제 출력 3

32

⌨️ 예제 입력 4

........
..F.....
.....F..
.....F..
........
........
.......F
.F......

🖨 예제 출력 4

2

📚 내가 제출한 코드

import sys
oddArr = []; evenArr = []; odd = ''; even = ''; result = 0
for i in range(8):
    if i % 2 == 0:
        even += sys.stdin.readline().rstrip()
    else:
        odd += sys.stdin.readline().rstrip()
evenArr = list(even); oddArr = list(odd)
for e in evenArr[0 : 32 : 2]:
    if e == 'F':
        result += 1
for o in oddArr[1 : 32 : 2]:
    if o == 'F':
        result += 1
print(result)

✏️ 내가 제출한 코드에 대한 설명

  • range(a) : 0부터 a-1까지의 정수를 반환하는 함수
  • sys.stdin.readline() : 키보드로 입력한 값을 받는 함수 (기존의 input() 보다 속도가 훨씬 빠르다.)
  • sys.stdin.readline().rstrip() : 기존의 input() 이랑 다르게 sys.stdin.readline() 은 개행 문자까지 입력으로 받기 때문에 개행 문자를 제거해주는 코드를 따로 써줘야 한다. 개행 문자 제거하는 함수가 rstrip() 이다.
  • a[b : c : d] : 리스트 a의 index가 b인 원소부터 c-1인 원소까지 d씩 증가시키면서 반환한다.
  • 메모리 : 30864 KB
  • 시간 : 72 ms
  • 코드 길이 : 396 B
profile
#iOS #Swift #Developer #Python

0개의 댓글