Algorithm/inflearn
문장 속 단어
마닐라
2021. 9. 2. 10:58
1.split 사용
import java.util.Scanner;
class Main {
public String solution(String str) { //str은 문장임
String answer = ""; //가장 긴 단어가 들어갈거임
int m = Integer.MIN_VALUE;
String[] s = str.split(" ");
for(String x : s){
int len = x.length();
if(len>m){
m = len;//길이가 m보다 크면 len에 넣어라
answer = x; // 그리고 해당 길이의 단어를 answer에 넣어라.
}
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.nextLine(); //한 줄을 읽어들임
System.out.println(T.solution(str));
}
}
2.indexOf, substring 사용
import java.util.Scanner;
class Main {
public String solution(String str) { //str은 문장임
String answer = ""; //가장 긴 단어가 들어갈거임
int m = Integer.MIN_VALUE, pos;
while((pos=str.indexOf(' '))!=-1){
//띄어쓰기가 있으면 true, 띄어쓰기가 있는 인덱스를 pos에 대입
String tmp = str.substring(0, pos);
int len = tmp.length();
//같거나 클때로 하게되면 뒤쪽에 같은 길이의 단어가 나올 때 변경이 됨
if(len>m){
m=len;
answer=tmp;
}
//띄어쓰기가 있는 인덱스 다음부터 끝까지 다시 짤라냄
str=str.substring(pos+1);
}
//마지막 단어는 띄어쓰기가 없기 때문에 마지막 단어 처리 필요.
if(str.length()>m) answer = str;
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.nextLine(); //한 줄을 읽어들임
System.out.println(T.solution(str));
}
}