반응형

https://www.acmicpc.net/problem/1316

import java.util.Scanner;
import java.util.List;
import java.util.ArrayList;

public class MyClass {
    public static void main(String args[]) {
      Scanner sc = new Scanner(System.in);
      int line = sc.nextInt();
      int cnt = 0 ; //그룹문자 카운트
      sc.nextLine(); //개행문자 때문에 넣음
       
      for(int l =1; l <= line ; l ++ ){
          String str = sc.nextLine();
          List<String> list = new ArrayList<String>();
          
          for(int i =0; i<str.length() ;i++){
              String now = str.substring(i,i+1);
              //리스트에 있는 경우 : 앞에서 문자를 넣었음
              if(list.contains(now)){
                  String before = str.substring(i-1,i);
                  //이미 있는 문자인데 현재문자 바로 앞이 다른 문자인 경우 -> 그룹단어 아님
                  if(!before.equals(now)){
                      break;
                  }
              //리스트에 없는 경우 : 처음 나온 문자
              }else{
                  list.add(now);
              }
              
              //그룹단어 검사 마지막 문자인 경우 -> 그룹단어이므로 카운트 
              if(i+1==str.length()){
                  cnt+=1;
              }
          }
          
      }
      System.out.println(cnt);
    }
}

 

* 학습내용

1. nextInt() : 사용자 입력의 가장 마지막 개행문자(엔터, newline)를 제거하지 않는다.

nextInt() 후에 바로 nextLine()을 사용하면 개행문자를 입력받게 된다.

 

2. charAt()

다음에는 substring말고 charAt을 쓰자

반응형

'코딩 관련 > 코딩문제풀기' 카테고리의 다른 글

[JAVA] 9012번 괄호  (0) 2023.03.13
[JAVA] 너의 평점은  (0) 2023.03.12
[JAVA] 크로아티아 알파벳  (0) 2023.03.11
[JAVA] 직사각형에서 탈출  (0) 2023.03.09
[JAVA] 4344번 평균은 넘겠지 문제  (0) 2023.03.09

+ Recent posts