728x90
반응형
▷ 문제
한 개의 문장이 주어지면 그 문장 속에서 가장 긴 단어를 출력하는 프로그램을 작성하세요.
문장속의 각 단어는 공백으로 구분됩니다.
* 입력
첫 줄에 길이가 100을 넘지 않는 한 개의 문장이 주어집니다. 문장은 영어 알파벳으로만 구성되어 있습니다.
* 출력
첫 줄에 가장 긴 단어를 출력합니다.
가장 길이가 긴 단어가 여러개일 경우 문장속에서 가장 앞쪽에 위치한 단어를 답으로 합니다.
▷ 입력 예시
it is time to study
▷ 출력 예시
study
▷ 풀이
1. indexOf와 subString 이용
import java.util.Scanner;
public class Main {
public String solution(String str){
String answer = "";
int max = Integer.MIN_VALUE, pos;
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);
}
if(str.length() > max){
answer = str;
}
return answer;
}
public static void main(String[] args) {
Main main = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.nextLine();
System.out.println(main.solution(str));
}
}
2. 배열을 이용한 풀이
import java.util.Scanner;
public class Main {
public String solution(String str){
String answer = "";
int max = Integer.MIN_VALUE, pos;
String[] strArr = str.split(" ");
for (String x : strArr) {
int len = x.length();
if(len > max){
max = len;
answer = x;
}
}
return answer;
}
public static void main(String[] args) {
Main main = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.nextLine();
System.out.println(main.solution(str));
}
}
▷ 핵심 키워드
1. max값을 선언할 때 Integer.MIN_VALUE을 이용하여 초기화하는 방법을 사용할 수 있다.
반응형
'Algorithm > String' 카테고리의 다른 글
[알고리즘]중복문자 제거 - 입력 받은 문자열에서 중복된 문자 제거하기 (0) | 2021.10.09 |
---|---|
[알고리즘]문자찾기 - 입력 받은 문자열에서 특정 문자가 몇 개 존재하는지 알아내기 (0) | 2021.10.09 |
[알고리즘]단어 뒤집기 - 입력받은 문자열 거꾸로 출력하기 (0) | 2021.10.09 |
[알고리즘]대소문자 변환 - 입력 받은 문자열의 대소문자 변환하기 (0) | 2021.10.09 |
[알고리즘]문자찾기 - 입력 받은 문자열에서 특정 문자가 몇 개 존재하는지 알아내기 (0) | 2021.10.09 |