문제(출처: 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 |