🌞Algorithm/🔥Baekjoon

[Baekjoon] 5637_가장 긴 단어

뿌야._. 2024. 7. 10. 11:14
문제(출처: https://www.acmicpc.net/problem/5637)

< 가장 긴 단어 >

 

문제 풀이 

 

입력으로 주어진 모든 단어의 길이를 세어 가장 긴 단어를 출력한다.

 

 my solution (Java)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class _5637_ { // 가장 긴 단어

	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st;

		boolean flag = false;
		int max = 0;
		String result = "";

		while (true) {
			st = new StringTokenizer(bf.readLine());

			while (st.hasMoreTokens()) {
				String str = st.nextToken();
				if (str.equals("E-N-D")) {
					flag = true;
					break;
				}

				String answer = "";
				for (int i = 0; i < str.length(); i++) {
					if (Character.isAlphabetic(str.charAt(i)) || str.charAt(i) == '-') {
						answer += Character.toLowerCase(str.charAt(i));
					} else {
						if (max < answer.length()) {
							max = answer.length();
							result = answer;
						}
						answer = "";
					}
				}
				if (max < answer.length()) {
					max = answer.length();
					result = answer;
				}
			}
			if (flag) {
				break;
			}
		}
		System.out.println(result);
	}
}
변수)
flag : 마지막 입력 여부
max : 가장 긴 단어 길이
result : 가장 긴 단어
str : 입력으로 주어진 단어
answer : 단어

 

E-N-D가 입력으로 들어올 때까지 다음 과정을 반복한다.

 

1) 단어를 살펴보며 알파벳과 하이픈으로 이루어진 부분만 answer에 저장

2) 알파벳과 하이픈이 아니라면 가장 긴 단어인지 확인 후 업데이트

 

최종 가장 긴 단어 result 출력



 

'🌞Algorithm > 🔥Baekjoon' 카테고리의 다른 글

[Baekjoon] 28256_초콜릿 보관함  (1) 2024.07.12
[Baekjoon] 9518_로마 카톨릭 미사  (0) 2024.07.11
[Baekjoon] 30803_수도꼭지  (0) 2024.07.09
[Baekjoon] 1980_햄버거 사랑  (0) 2024.07.08
[Baekjoon] 4821_페이지 세기  (1) 2024.07.05