문제 포인트
- 문장 속 각 단어는 공백으로 구분, 단어 중에서 가장 긴 단어를 출력
- 가장 긴 단어가 여러개인 경우, 문장 속에서 가장 앞쪽에 위치한 단어를 출력
풀이
- 입력받은 문자열을 공백 단위로 구분하기
- 구분된 단어들의 길이를 비교하여, 최댓값 업데이트 && 해당 문자열을 저장
✅ split
package 섹션1_String;
import java.io.*;
public class 가장긴단어 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int max=Integer.MIN_VALUE; // 가장 작은 문자열 길이 값으로 0으로 초기화 해도 상관없음
String answer = "";
// 입력받은 문자열 -> 공백을 기준으로 분리
String[] s = br.readLine().split(" ");
for (String x : s) {
if(x.length()>max){
max=x.length();
answer=x;
}
}
bw.write(answer);
bw.flush();
br.close();
bw.close();
}
}
✅ IndexOf, subString
package 섹션1_String;
import java.io.*;
public class 가장긴단어 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int max=Integer.MIN_VALUE; // 가장 작은 문자열 길이 값으로 0으로 초기화 해도 상관없음
int pos=0; // 공백이 위치한 곳
String answer = "";
// 입력받은 문자열 -> 공백을 기준으로 문자열을 분리
String str= br.readLine();
while((pos=str.indexOf(" "))!= -1){
String tmp = str.substring(0, pos);
int len=tmp.length();
if(len > max){
max=len;
answer=tmp;
}
🌀str = str.substring(pos + 1);
}
// 마지막 단어는 공백이 존재하지 않으므로 따로 check
🌀if(str.length()>max) answer=str;
bw.write(answer);
bw.flush();
br.close();
bw.close();
}
}
'알고리즘 > 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비' 카테고리의 다른 글
1-7 회문 문자열 (0) | 2025.05.01 |
---|---|
1-6 중복 문자 제거 (1) | 2025.04.09 |
1-5 특정 문자 뒤집기 (0) | 2025.04.09 |
1-2 대소문자 변환 (1) | 2025.04.07 |
1-1 문자 찾기 (0) | 2025.04.07 |