알고리즘/Samsung
SW 2007. 패턴 마디의 길이
son_i
2023. 4. 14. 20:14
728x90
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
생각보다 간단하게 풀었지만 내 코드는 완벽하지 않다.
2번째 자리까지 중간에 같은게 있으면 거기까지 마디로 인식 못 한다.
package algorithm;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
/*
사용하는 클래스명이 Solution 이어야 하므로, 가급적 Solution.java 를 사용할 것을 권장합니다.
이러한 상황에서도 동일하게 java Solution 명령으로 프로그램을 수행해볼 수 있습니다.
*/
public class Solution
{
public static void main(String args[]) throws Exception
{
//System.setIn(new FileInputStream("C:\\so_Project\\workspace\\BaekJoon\\src\\algorithm\\input.txt"));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int num = Integer.parseInt(br.readLine());
String arr[] = new String[num];
for(int i=0;i<num;i++) {
arr[i] = br.readLine();
int count = 0;
char tmp = arr[i].charAt(0);
char tmp1 = arr[i].charAt(1);
for(int j=1;j<10;j++) { //한 문자열을 돌면서 같은 애가 몇 번째에 나오는지 체크
count++;
if(arr[i].charAt(j)==tmp && arr[i].charAt(j+1)==tmp1) {
break;
}
}
System.out.println("#"+(i+1)+" "+count);
}
}
}
ex) koreakokoreakokoreako 일 때 마디를 5로 인식.
substring을 써서 모든 조건을 만족할 수 있게 다시 풀어보자
package algorithm;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
/*
사용하는 클래스명이 Solution 이어야 하므로, 가급적 Solution.java 를 사용할 것을 권장합니다.
이러한 상황에서도 동일하게 java Solution 명령으로 프로그램을 수행해볼 수 있습니다.
*/
public class Solution
{
public static void main(String args[]) throws Exception
{
//System.setIn(new FileInputStream("C:\\so_Project\\workspace\\BaekJoon\\src\\algorithm\\input.txt"));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int num = Integer.parseInt(br.readLine());
String arr[] = new String[num];
for(int i=0;i<num;i++) {
arr[i] = br.readLine();
int count = 0;
int t = 0;
for(int j=0;j<10;j++) { //한 문자열을 돌면서 같은 애가 몇 번째에 나오는지 체크
String tmp = arr[i].substring(0,j+2);
String tmp1=arr[i].substring(j+2, j+4+t);
t++;
if(tmp.equals(tmp1)) {
count = tmp.length();
break;
}
}
System.out.println("#"+(i+1)+" "+count);
}
}
}
완성 !
728x90