알고리즘/백준
[백준] 1652번: 누울 자리를 찾아라 / 파이썬
홍우진
2025. 1. 15. 22:52
728x90
반응형
문제 링크
https://www.acmicpc.net/problem/1652
풀이 코드
n = int(input())
bang = [list(input()) for _ in range(n)]
garo = 0
sero = 0
# 가로 검사
for y in range(n):
count = 0
for x in range(n):
if bang[y][x] == '.':
count += 1
else: #X가 나왔을 때
if count >= 2: # 2자리 연속으로 남아있다면
garo += 1 # 누울 곳 +1
count = 0 # 초기화
if count >= 2: # 줄이 끝났을 때 한번 더 확인
garo += 1
# 세로 검사
for x in range(n):
count = 0
for y in range(n):
if bang[y][x] == '.':
count += 1
else: #X가 나왔을 때
if count >= 2: # 2자리 연속으로 남아있다면
sero += 1 # 누울 곳 +1
count = 0 # 초기화
if count >= 2: # 열이 끝났을 때 한번 더 확인
sero += 1
print(garo, sero)
코드 해석
..X.. 일 때는 누울 자리가 두 곳이라는 사실을 간과하면 안된다(나만 몰랐었나)
가로로 싹 확인하고 세로로 싹 확인하며
X가 나온다면 지금까지 .이 연속으로 두 번 이상 나왔는지 확인,
나왔다면 누울 자리 += 1 을 한다.
그리고 카운팅 초기화 후 다시 확인.
끝날 때 까지 반복한다.
체감 난이도: ★★☆☆☆
728x90
반응형