https://www.acmicpc.net/problem/3078
3078번: 좋은 친구
첫째 줄에 N과 K가 주어진다. (3 ≤ N ≤ 300,000, 1 ≤ K ≤ N) 다음 N개 줄에는 상근이네 반 학생의 이름이 성적순으로 주어진다. 이름은 알파벳 대문자로 이루어져 있고, 2글자 ~ 20글자이다.
www.acmicpc.net
import sys
input=sys.stdin.readline
n,k=map(int,input().split())
a=[]
for i in range(n):
a.append(len(input().strip()))
m=k+1
b=[0]*21
ans=0
for i in range(m):
ans+=b[a[i]]
b[a[i]]+=1
for end in range(m,n):
start=end-m
b[a[start]]-=1
ans+=b[a[end]]
b[a[end]]+=1
print(ans)
'코딩 테스트 > 백준 - 일반' 카테고리의 다른 글
2531. 회전 초밥, 15961. 회전 초밥 (0) | 2023.01.28 |
---|---|
1593. 문자 해독 (0) | 2023.01.28 |
11003. 최솟값 찾기 (0) | 2023.01.28 |