[백준] 1652번 누울 자리를 찾아라

거북이·2023년 1월 9일
0

백준[실버5]

목록 보기
90/114
post-thumbnail

💡문제접근

문제를 이해하고 코드를 작성했는데 계속 WA가 출력되어 질문게시판에 있는 반례 및 문제 내용 설명을 찾아봤는데 어떤 사람의 질문 답변을 보고 어디가 잘못되었는지 찾을 수 있었다.

💡헷갈릴만한 테스트케이스

1열2열3열4열5열
1행..X..
2행XXXXX
3행XXXXX
4행XXXXX
5행XXXXX

위의 테스트케이스의 경우 1행에서 누울 수 있는 자리가 2군데 나오므로 출력은 2 0이 되어야 한다.

연속적으로 빈 칸을 모두 차지해야 한다. 예를 들어, 가로로 3칸이 연속해서 비어있고 이곳에 가로로 눕고 싶다면 반드시 그 3칸을 모두 차지해야 하고 2칸만 차지해서 누울 수 없다는 의미가 된다.

💡코드(메모리 : 30616KB, 시간 : 40ms)

N = int(input())
room = []
for _ in range(N):
    room.append(input())

width = 0
for a in range(N):
    width_cnt = 0
    for b in range(N):
        if room[a][b] == ".":
            width_cnt += 1
        else:
            width_cnt = 0
        if width_cnt == 2:
            width += 1

height = 0
for c in range(N):
    height_cnt = 0
    for d in range(N):
        if room[d][c] == ".":
            height_cnt += 1
        else:
            height_cnt = 0
        if height_cnt == 2:
            height += 1

print(width, height)

💡소요시간 : 10m

0개의 댓글