취업이야기

SWEA(SW Expert Academy) [d2] 2007. 패턴 마디의 길이 (java)

경훈잉 2024. 4. 13.

문제. 2007 패턴 마디의 길이 

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=2&contestProbId=AV5P1kNKAl8DFAUq&categoryId=AV5P1kNKAl8DFAUq&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=JAVA&select-1=2&pageSize=10&pageIndex=1

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!...

swexpertacademy.com

패턴에서 반복되는 부분을 마디라고 부른다. 문자열을 입력 받아 마디의 길이를 출력하는 프로그램을 작성하라.


[제약 사항]

각 문자열의 길이는 30이다. 마디의 최대 길이는 10이다.


[입력]

가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.

각 테스트 케이스의 첫 번째 줄에는 길이가 30인 문자열이 주어진다.


[출력]

출력의 각 줄은 '#t'로 시작하고, 공백을 한 칸 둔 다음 정답을 출력한다.

(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)

입력 출력
3       
KOREAKOREAKOREAKOREAKOREAKOREA
SAMSUNGSAMSUNGSAMSUNGSAMSUNGSA
GALAXYGALAXYGALAXYGALAXYGALAXY     
#1 5
#2 7
#3 6

풀이

import java.util.Scanner;
import java.io.FileInputStream;

class Solution
{
	public static void main(String args[]) throws Exception
	{
		Scanner sc = new Scanner(System.in);
		int T;
		T=sc.nextInt();

		for(int test_case = 1; test_case <= T; test_case++)
		{
            String s = sc.next();
            int ans = 0;
            boolean ch = false;
            for(int i = 1; i < s.length(); i++){
                // 같은 영어가 나올때까지 비교
                if(s.charAt(0) == s.charAt(i)) {
                    for(int j = 0; j < i; j++){
                        // 같은게 나오면 그 이후로 나오는 단어가 모두 같은지 비교
                     	if(s.charAt(j) == s.charAt(j+i)){
                         	ch = true;   
                        }
                        else {
                            ch=false;
                            break;
                        }
                    }
                }
                if(ch == true){
                    ans = i;
                    break;
                }	     
            }	
            System.out.println("#" + test_case + " " + ans);
		
		}
	}
}

이것도 막 어려운 문제는 아닌것같다.

같은 알파벳이 나올때까지 for를 돌려서 같은 알파벳이 나오는 순간 그 사이의 알파벳을 모두 비교해준다.

문제는 쉬운데 잘못 이해해서 반복되는 단어의 숫자를 몇갠지 알아내는 문제로 봐서 왜 답이 자꾸 틀리나 해맸다.

문제만 좀 더 집중하면 시간 단축할듯.

반응형

댓글