문제:
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PuPq6AaQDFAUq
나의코드 : 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(요소)
리스트의 원소들 중에서 요소가 몇개가 있는지 체크해주는 방법이다.
'공부-코딩테스트 > 코테풀이 - 자바, 파이썬' 카테고리의 다른 글
2001. 파리 퇴치 (코딩테스트, SW Expert Academy) (0) | 2022.05.06 |
---|---|
1216. [S/W 문제해결 기본] 3일차 - 회문2 (코딩테스트, SW Expert Academy) (0) | 2022.05.05 |
1961. 숫자 배열 회전 (코딩테스트, SW Expert Academy) (0) | 2022.04.29 |
1209. [S/W 문제해결 기본] 2일차 - Sum (코딩테스트, SW Expert Academy) (0) | 2022.04.28 |
1945. 간단한 소인수분해 (코딩테스트, SW Expert Academy) (0) | 2022.04.27 |
댓글