- [JAVA] 03. 문장 속 가장 긴 단어 출력하기2023년 12월 15일 00시 14분 30초에 업로드 된 글입니다.작성자: Hyeongseon_Yu

2023.12.10 - [Java 알고리즘 코딩테스트 대비 문제풀이] - [JAVA] 02. 대 소 문자 변환하기
[JAVA] 02. 대 소 문자 변환하기
2023.12.10 - [Java 알고리즘 코딩테스트 대비 문제풀이] - [JAVA] 01. 문자 찾기 [JAVA] 01. 문자 찾기 import java.util.Scanner; public class Main { public int solution(String str, char t) { int answer = 0; str = str.toUpperCase(); t = Ch
devhyeongseon.tistory.com

코드 1.
import java.util.*; 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 T = new Main(); Scanner kb = new Scanner(System.in); String str=kb.nextLine(); System.out.print(T.solution(str)); } }메인클래스에서는 it is time to study 를 키보드로 입력받기 위한
Scanner 클래스를 사용한다.
Solution 메서드를 사용하기 위해서
Main T = new Main(); 으로 객체생성 후
T. 으로 접근하여 T.solution(str) 호출한다.
max를 int m으로 두고
초기화는 0으로 해도 무방하나
Integer.MIN_VALUE; 를 사용하여
자바에서 가장 작은 정수값으로 초기화하는방법을 사용했다.
한 문장을 str 로 입력받았기 때문에
띄어쓰기, 즉 공백으로 단어들을 구분지어서
문자의 길이를 비교한다.
문자열.split("구분자")
위의 문법으로 사용한다.
String str은 "it is time to studty"
의 문장이 들어와있는 상태이고
String[] s = str.split(" ");
문자열로 이루어진 배열 s 에
it
is
time
to
study
이렇게 잘라서 배열의 인덱스에 들어가게된다.
for each 문의 구조는 다음과 같다.
for (type 변수명: iterate) { body-of-loop }iterate는 루프를 돌릴 객체이고 iterate 객체에서 한 개씩 순차적으로 변수명에 대입되어 for 문이 수행된다. iterate에 사용할 수 있는 자료형은 루프를 돌릴 수 있는 자료형(배열이나 ArrayList 등)만 가능하다.
그리고 변수명의 type(자료형)은 iterate 객체에 포함된 자료형과 일치해야 한다.
for(String x : s){
int len = x.length();
이 부분은 반복을 돌며 순차적으로 it, is, time, to, study가 오게되고
len을 2,2,4,2,5로 초기화 한다.
아래 if문에서는 새로 초기화 되는 len의 값이 기존의 m보다 크면
m을 새로운 len의 값으로 초기화 하여
가장 긴 단어를 최신화하고
answer에 마지막으로 split 되어 들어온 study가 들어가게되고
최종적으로 반환한다.
'Java 알고리즘 코딩테스트 대비 문제풀이' 카테고리의 다른 글
[JAVA] 02. 대 소 문자 변환하기 (0) 2023.12.10 [JAVA] 01. 문자 찾기 (0) 2023.12.10 댓글