[백준(baekjoon) 2902] KMP는 왜 KMP일까?

2018. 7. 16. 16:12Algorithm

반응형
[백준(baekjoon) 2902] KMP는 왜 KMP일까?

문제

백준 2902

알고리즘 명을 지을 때, 주로 만든 사람들의 성의 첫글자만 따서 줄여 부른다.

  • 긴 형태 : 하이픈(-)으로 이어 붙인 것
    • 예시 : Knuth-Morris-Pratt
  • 짧은 형태 : 첫 글자만 딴 것
    • 예시 : KMP
      긴 형태의 알고리즘 명이 주어졌을 때, 짧은 형태로 바꿔 출력하라.

해결

알고리즘

굳이 구분하자면 문자열 알고리즘이라고 할 수있다.

설명

하이픈 (-) 기준으로 이름을 나누고, 앞 문자만 가져와 붙이는 쉬운 문제이다.


String.split(String regex)로 정규 표현식에 따라 문자열을 구분하였고, String.charAt(int index)로 각 이름의 첫글자에 접근하였다.
그리고 가변객체인 StringBuilder를 사용해 append로 한글자씩 붙여주었다.

추후 String, StringBuilder, StringBuffer의 차이점과 자주 쓰이는 내장함수에 대해 설명하는 포스팅도 해볼게요…

구현

1.import java.util.*;
2.
3.public class Main {
4. public static void main(String[] args) {
5. Scanner sc = new Scanner(System.in);
6. String[] inputs = sc.nextLine().split("-");
7. StringBuilder result = new StringBuilder("");
8. for (String str : inputs)
9. result.append(str.charAt(0));
10.
11. System.out.println(result);
12. }
13.}

결과

Alt text


반응형