본문 바로가기

DEVELOPMENT/ALGORITHM

[백준 자바 2902번] KMP는 왜 KMP일까?

이 문제를 풀면서 계속 헷갈리던 charAt() 메서드에 대해 좀 더 이해할 수 있게 되었다.

 

처음에는 split() 메서드를 이용하여 풀었지만 charAt()을 써먹어보고 싶어서 다시 한번 더 시도를 하였다.

 

입력받은 문자열을 charAt()을 사용하여 쪼갠 문자를 정수로 받아 대문자만 추출해준다. (ASCII 65~90)

 

그 후 추출한 문자를 char 타입으로 형 변환하여 출력한다.

 

1. split() 사용

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String str = sc.nextLine();
		String [] arr = str.split("-");
		String [] arr2 = new String [100];
 		
		for(int i=0;i<arr.length;i++) {
			for(int j=0;j<arr[i].length();j++) {
				String A = arr[i];
				arr2 = A.split("");
				
			}
			System.out.print(arr2[0]);
		}
		

	}

}

2. charAt() 사용

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String str = sc.nextLine();
		char ch = '?';
		
		for(int i=0;i<str.length();i++) {
			int s = str.charAt(i);
			if(s >=65 && s<=90) {
				ch = (char)s;
				System.out.print(ch);
			}
		
		}
		
				

	}

}

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

 

2902번: KMP는 왜 KMP일까?

입력은 한 줄로 이루어져 있고, 최대 100글자의 영어 알파벳 대문자, 소문자, 그리고 하이픈 ('-', 아스키코드 45)로만 이루어져 있다. 첫 번째 글자는 항상 대문자이다. 그리고, 하이픈 뒤에는 반드

www.acmicpc.net

 

'DEVELOPMENT > ALGORITHM' 카테고리의 다른 글

[백준 자바 2959번] 거북이  (0) 2022.02.06
[백준 자바 2783번] 삼각 김밥  (0) 2022.02.06