반응형
문제
체스판은 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
해당 문제는 체스 판에 대한 문제인데
흰색 칸에 체스가 몇개가 있는 지 개수를 카운팅하는 문제이다.
당연하게도 이 문제는 리스트 (배열)을 이용해야되는 문제였으며,
문제에서는 0,0은 흰색이기에 흰색부터 시작한다는 것을 유의하며 반복을 돌리면 풀 수 있는 문제이다.
당연하게도 한 줄이 첫 시작이 흰색이면 다음 줄은 검은색으로 시작한다는 것만 잘 주의하자.
import sys
f = True # 흰
c = 0
for i in range(8):
p = list(sys.stdin.readline().strip())
if f: # 흰
for j in range(0, len(p), 2):
if(p[j] == 'F'):
c += 1
else:
for j in range(1, len(p), 2):
if(p[j] == 'F'):
c += 1
f = not f
print(c)
어쩌피 8x8크기 이기에 8번 줄만 받으면 되었다.
그렇기에 반복은 8번을 돌리고 한 줄을 받아 그 줄을 받을 때에 f라는 변수로 시작이 흰인지 검인지를 체크하면 되는 문제
하지만 다음 칸은 색상이 바뀌기에 +=2씩 해주어야된다.
반응형
'알고리즘' 카테고리의 다른 글
[BAEKJOON] 1212 8진수 2진수 (0) | 2023.11.17 |
---|---|
[BAEKJOON] 1173 운동 (0) | 2023.11.17 |
[BAEKJOON] 15964 이상한 기호 (0) | 2023.11.16 |
[BAEKJOON] 8958 OX퀴즈 (0) | 2023.11.15 |
[BAEKJOON] 2501 약수 구하기 (0) | 2023.11.14 |