it is time to travel
travel
import java.util.Scanner;
public class Main {
public String solution(String 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;
answer=x;
}
}
return answer;
}
public static void main(String[] args){
Main m = new Main();
Scanner sc=new Scanner(System.in);
String str = sc.nextLine();
System.out.println(m.solution(str));
}
}
for문 돌리는 과정이 이해가 되지 않아 직접 하나씩 값을 넣어서 비교해 보았다.
(입력 : it is time to travel)
for문을 돌 때 각각의 값(x 값, len 값, m 값, x 값 순)
m의 초기값은 -2147483648 이다.
it, len=2, m=2, x="it"
is, len=2, m=2, x="it"(len = 2, m = 2 if문 실행 안됨, 위와 값 동일함)
time, len=4, m=4, x ="time"
to, len=2, m=4, x ="time" (len = 2, m = 4 if문 실행 안됨, 위와 값 동일함)
travel, len=6, m=4, x="travel"
최종적으로 x="travel". answer로 할당되서 return된다.
import java.util.Scanner;
public class Main {
public String solution(String str) {
String answer = "";
int m = Integer.MIN_VALUE, pos;
while ((pos = str.indexOf(' '))!=-1) {
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 m = new Main();
Scanner sc=new Scanner(System.in);
String str = sc.nextLine();
System.out.println(m.solution(str));
}
}
위 풀이와 다르게 while문을 이용한 풀이인데 이것도 머리만으로는 이해가 되지 않아 노가다로 진행과정에 따른 값들을 일일히 찾아가며 따라가보았다.
(입력 : it is time to travel)