• Home

My Codegate

  • Home

백준 24510 시간복잡도를 배운 도도 자바 문제풀이

2024/02/05 Posted by Codegate Java No Comments
백준  자바 문제풀이

문제 링크

문제 내용은 입력으로 입력 갯수를 받은 뒤, 이후 문자열을 받아서 문자열 내에 for 혹은 while이 몇개가 들어있는지 확인한 후, 가장 많이 들어있었던 문자열의 for/while 갯수를 출력해주면 된다.

예제 입력 1에서는 3번째 줄에 forwhileforfor가 4개로 가장 많으니 4를 출력하고, 예제 입력 2에서는 for/while이 들어있는 문자열이 하나도 없으니 0을 출력한다

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {

  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int count = Integer.parseInt(br.readLine());

    int max = 0;
    for (int i = 0; i < count; i++) {
      String testStr = br.readLine();
      Pattern pattern = Pattern.compile("for|while");
      Matcher matcher = pattern.matcher(testStr);

      int current = 0;
      while (matcher.find()) {
        current++;
      }

      if (max < Math.max(max, current)) {
        max = current;
      }
    }
    System.out.println(max);
  }
}

문제 풀이는 Pattern / Matcher 에 대해 알고 있었으면 해결할 수 있는데 Pattern으로 원하는 값을 설정해 놓고 이후 Matcher에 문자열 넣고 find 메소드로 돌리면서 나올 때마다 1씩 증가 시켜주면 문자열 내에 for/while이 몇개 들어갔는지 확인할 수 있는데

문자열을 모두 확인한 뒤에는 Math.max로 이전 최대값과 비교해서 최대값을 저장한 뒤, 반복문이 끝나고 난 뒤에는 최대값을 출력해주면 끝이다

No Comments
0

Leave a Reply Cancel Reply

Introduction

My Codegate

Latest Posts

  • Google Search Console API 연동방법
  • 인텔리제이 Gradle Dependency 최신 버전 보는 방법
  • Wallet-Tracker 개발일지
  • Moralis API 자바로 호출방법
  • IntelliJ Commit 후 Push 따로 하는 방법

Categories

  • My Project (4)
  • Java (42)
  • Algorithm (161)
    • Java (152)
    • Algorithm Knowledge (3)
    • Algorithm site usage (6)
  • Vue.js (1)
  • Spring (4)
  • Docker (2)
  • IntelliJ (20)
  • Uncategorized (7)

Recent Comments

  • Codegate on Hello world!
  • A WordPress Commenter on Hello world!

© 2025 — mycodegate.com

Prev Next