문제풀이 - String(문자열) :: 3. 문장 속 단어
문제
한 개의 문장이 주어지면 그 문장 속에서 가장 긴 단어를 출력하는 프로그램을 작성하세요.
문장속의 각 단어는 공백으로 구분됩니다.
입력
첫 줄에 길이가 100을 넘지 않는 한 개의 문장이 주어집니다.
문장은 영어 알파벳으로만 구성되어 있습니다.
출력
첫 줄에 가장 긴 단어를 출력한다.
가장 길이가 긴 단어가 여러개일 경우 문장속에서 가장 앞쪽에 위치한 단어를 답으로 합니다.
예시 입력 1
it is time to study
예시 출력 1
study
🎇 Solution.java
split()을 이용한 풀이
import java.util.Scanner;
class Main {
public String solution(String str) {
String answer = "";
int m = 0;
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 T = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.nextLine();
System.out.print(T.solution(str));
}
}
indexOf()와 substring()을 이용한 풀이
import java.util.Scanner;
class Main {
public String solution(String str) {
String answer = "";
int m = 0;
int 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 T = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.nextLine();
System.out.print(T.solution(str));
}
}
💭 정리
String[] s = str.split(" ") -> 문자열을 잘라서 배열로 변환
str.indexOf(" ") -> 문자가 처음 발견되는 인덱스를 반환, 만약 찾지 못했을 경우 -1을 반환
str.substring(3) -> 문자열의 3번째부터 마지막까지 문자 추출
str.substring(0, 3) -> 문자열의 0번째부터 3번째 앞 문자까지 추출
Author And Source
이 문제에 관하여(문제풀이 - String(문자열) :: 3. 문장 속 단어), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dahee/알고리즘-문제풀이-String문자열-3.-문장-속-단어저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)