[swea] 1979. 어디에 단어가 들어갈 수 있을까

yeongbin·2022년 5월 6일
0

swea

목록 보기
4/6

문제 바로가기

  • 난이도 : D2
t = int(input())

for i in range(t):
    N, K = map(int, input().split())
    puzzle = []
    for j in range(N):
        puzzle.append(list(map(int, input().split())))

    row_cnt = 0
    for j in range(len(puzzle)):    # row 탐색
        st = ''
        for k in range(len(puzzle[j])):
            st += str(puzzle[j][k])	# 각 요소들을 str로 변환한 후 변수에 저장

        for l in st.split('0'):		
            if l == '1' * K:
                row_cnt += 1

    col_cnt = 0
    for j in range(len(puzzle)):	# col 탐색
        st = ''
        for k in range(len(puzzle[j])):
            st += str(puzzle[k][j])

        for l in st.split('0'):
            if l == '1' * K:
                col_cnt += 1

    print(f"#{i+1} {row_cnt + col_cnt}")

row와 col 모두 한 줄씩 탐색하여 요소들을 str로 변환하고 split('0')을 이용해 0을 제외한 리스트로 변환한다. 그 리스트를 탐색하여 K * '1'요소의 개수를 세면 된다는 아이디어로 출발했다.

처음에는 for문을 이용해 찾고자 하는 개수의 1의 개수를 찾지 않고 if문과 in을 이용하여 찾았으나 찾고자 하는 값이 2개 이상일 경우 문제가 생겼다. 따라서 for문을 이용해 리스트를 탐색하여 개수를 세었고 pass를 받게 되었다.

profile
꾸준함의 가치를 알자

0개의 댓글