본문 바로가기
공부-코딩테스트/코테풀이 - 자바, 파이썬

1979. 어디에 단어가 들어갈 수 있을까 (코딩테스트, SW Expert Academy)

by 령과 2022. 5. 3.

문제:

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PuPq6AaQDFAUq 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

나의코드 : 8분 30초

T = int(input())
for test_case in range(1, T + 1):
    N,K = map(int, input().split())#k단어길이 N테이블크기
    table = []
    answer = []
    for i in range(N):
        table.append(list(map(str, input().split())))
    for i in table:
        target = "".join(i)
        answer += target.split('0')
    for i in zip(*table):
        target = "".join(i)
        answer += target.split('0')
    print("#"+str(test_case),answer.count("1"*K))

이정도 문제는 이제 input을 받아서 내가 처리할 수 있게 만드는 세팅에 시간이 더 드는 듯 하다.

 

2차원 행열을 zip(*리스트)하면 각 요소들의 앞자리를 한개씩 다와서 튜플?형태로 i에 넣어서 for문을 돌릴 수 있다.

split을 통해서 2차원 행열에서 1요소들만 남게끔 자르게 한 다음 한 곳으로 모은다음 count로 길이에 맞는 요소들 수를 카운트한다.

 

상기 시킬만한 내용은 다음과 같다

1. "구분자".join(리스트)

리스트요소들을 문자열로 만들 수 있다. 구분자가 없다면 쭉 나열한다.

만약 리스트가 int형 리스트라면 map(str,리스트)식으로 해야된다. 나는 귀찮아서 위에 map에서부터 str로 받아서 처리함

 

2. 리스트.count(요소)

리스트의 원소들 중에서 요소가 몇개가 있는지 체크해주는 방법이다.

댓글