on
백준 3078 - 좋은 친구
백준 3078 - 좋은 친구
https://www.acmicpc.net/problem/3078
★ 풀이
.
★ 소스 코드
import java.io.*; import java.util.*; // 좋은 스킬 흡수하기 public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); static int n,k; static int len[]; public static void main(String[] args) throws IOException { StringTokenizer st = new StringTokenizer(br.readLine()); n = Integer.parseInt(st.nextToken()); k = Integer.parseInt(st.nextToken()); len = new int[n + 1]; for(int i = 1; i<=n; i++) { len[i] = br.readLine().length(); } Queue lenQ[] = new LinkedList[21]; for(int i = 2; i<=20; i++) { lenQ[i] = new LinkedList<>(); } long ans = 0; for(int grade = 1; grade<=n; grade++) { while (!lenQ[len[grade]].isEmpty() && grade - lenQ[len[grade]].peek() > k) { lenQ[len[grade]].poll(); } ans += lenQ[len[grade]].size(); lenQ[len[grade]].add(grade); } System.out.println(ans); } }
from http://sweet-smell.tistory.com/154 by ccl(A) rewrite - 2021-12-10 03:01:40