반응형
한 개의 문장이 주어지면 그 문장 속에서 가장 긴 단어를 출력하는 프로그램을 작성하세요.
문장속의 각 단어는 공백으로 구분됩니다.
1차 답변 - 성공
import java.util.Scanner;
public class Main {
public String solution(String str) {
String answer = "";
String[] wordArray = str.split(" ");
for(String x : wordArray) {
if(answer == "") {
answer = x;
} else if(answer.length() < x.length()) {
answer = x;
}
}
return answer;
}
public static void main(String[] args) {
Main C = new Main();
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
System.out.println(C.solution(str));
}
}
강의 정답 1
split() 함수 사용
import java.util.Scanner;
public class Main {
public String solution(String str) {
String answer = "";
int count = Integer.MIN_VALUE; //가장 작은 값으로 초기화(-2^31)
String[] wordArray = str.split(" ");
for(String x : wordArray) {
int len = x.length();
if(len > count) {
count = len;
answer = x;
}
}
return answer;
}
public static void main(String[] args) {
Main C = new Main();
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
System.out.println(C.solution(str));
}
}
정답 2
indexOf로 ' ' 공백 위치 알아낸 후 subString으로 단어 잘라내기
import java.util.Scanner;
public class Main {
public String solution(String str) {
String answer = "";
int count = Integer.MIN_VALUE; //가장 작은 값으로 초기화(-2^31)
int index;
while((index = str.indexOf(' ')) != -1) {
String tmp = str.substring(0, index);
int len = tmp.length();
if(len > count) {
count = len;
answer = tmp;
}
str = str.substring(index + 1);
}
if(str.length() > count) {
answer = str;
}
return answer;
}
public static void main(String[] args) {
Main C = new Main();
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
System.out.println(C.solution(str));
}
}
반응형
'코딩테스트' 카테고리의 다른 글
[인프런 자바 알고리즘 문제풀이] 6. 중복 문자 제거 (0) | 2022.09.21 |
---|---|
[인프런 자바 알고리즘 문제풀이] 5. 특정 문자 뒤집기(toCharArray()) (1) | 2022.09.21 |
[인프런 자바 알고리즘 문제풀이] 4. 단어 뒤집기 (1) | 2022.09.21 |
[인프런 자바 알고리즘 문제풀이] 2. 대소문자 변환 (0) | 2022.09.20 |
[인프런 자바 알고리즘 문제풀이] 1. 문자 찾기 (1) | 2022.09.19 |