Today
Total
07-01 03:05
관리 메뉴

홍우진의 개발 일기장

[백준] 1652번: 누울 자리를 찾아라 / 파이썬 본문

알고리즘/백준

[백준] 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
반응형
Comments