공부-코딩테스트/코테풀이 - 자바, 파이썬
1979. 어디에 단어가 들어갈 수 있을까 (코딩테스트, SW Expert Academy)
령과
2022. 5. 3. 01:05
문제:
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(요소)
리스트의 원소들 중에서 요소가 몇개가 있는지 체크해주는 방법이다.