본문 바로가기
Algorithm/Beakjoon

[Java] baekjoon 2902 : KMP는 왜 KMP일까? / 문자열

by Amy97 2021. 7. 14.
728x90

문제 


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

 

2902번: KMP는 왜 KMP일까?

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

www.acmicpc.net

해결 


자바의 반복문(for문)과 조건문(if문)을 이용해 입력받은 문자열의 대문자만 출력하는 프로그램을 작성하였다.

아스키코드를 활용한 조건문의 작성이 관건인 문제였다.

 

출처 : https://shaeod.tistory.com/228

문자열의 대문자만 출력하는 알고리즘 

1. 문자열의 모든 문자를 확인해야 하므로 문자열의 길이만큼 for문을 실행한다.

2. 문자열의 i번째 문자가 A (65) 이상 Z (90) 이하일 때만 출력되도록 for문 안에 if문을 작성한다.

3. if문의 조건에 맞는 i번째 문자만 출력되도록 charAt(i)을 이용해 대문자만 출력한다.

구현 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.*;
 
public class Main {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner sc = new Scanner(System.in);
 
        String str = sc.next(); // 알고리즘 이름을 문자열로 입력받음
 
        for (int i = 0; i < str.length(); i++) { // 문자열의 길이만큼 for문 실행
            if ('A' <= str.charAt(i) && str.charAt(i) <= 'Z') { 
                // 대문자만 출력해야 하므로 if문을 이용해 아스키코드 A이상 Z이하만 출력
                System.out.print(str.charAt(i)); 
                // charAt을 이용해 if문의 조건에 맞는 i번째 문자만 출력
            }
        }
 
    }
}
cs

결과 


728x90

댓글