문제
풀이
int max = 0;
for(int i=0;i<arr.length;i++){
if(arr[max].length() <= arr[i].length()){
arr[max] = arr[i];
}
}
소스코드
위와 같이 문자열의 길이가 같으면, 가장 앞의 문자열을 출력해야하는데 가장 뒤에것을 출력한다.
위의 코드 수정
그냥 등식만 빼주면 되는것이었는데, 너무 복잡하게 생각했다.
solution 메소드를 이용한 방법
IndexOf와 SubString 을 이용한 방법
package algolecture;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main3 {
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) throws IOException {
Main3 T = new Main3();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
System.out.println(T.solution(str));
}
}