-
TIL_20250216카테고리 없음 2025. 2. 16. 19:09
1. 자바 코딩 테스트
문자열
[문제] 문장 속 단어더보기설명
한 개의 문장이 주어지면 그 문장 속에서 가장 긴 단어를 출력하는 프로그램을 작성하세요.
문장속의 각 단어는 공백으로 구분됩니다.
입력
첫 줄에 길이가 100을 넘지 않는 한 개의 문장이 주어집니다. 문장은 영어 알파벳으로만 구성되어 있습니다.
출력
첫 줄에 가장 긴 단어를 출력한다. 가장 길이가 긴 단어가 여러개일 경우 문장속에서 가장 앞쪽에 위치한
단어를 답으로 합니다.
1. split() 방식
package org.example.infrenJavaCodingTest; import java.util.Scanner; public class chap2_3 { 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) { chap2_3 T = new chap2_3(); Scanner kb = new Scanner(System.in); // 한줄을 받아야 하므로, Line으로 받는다 String str = kb.nextLine(); System.out.println(T.solution(str)); } }
* Scanner.nextLine(): next()는 개행문자를 무시하고 입력을 받고 nextLine은 한줄 단위로 입력을 받기 때문에 개행문자로 포함한다.
2. index of() 방식
package org.example.infrenJavaCodingTest; import java.util.Scanner; public class chap2_3 { public String solution(String str) { String answer =""; int m = Integer.MIN_VALUE, pos; // 띄어쓰기를 발견하면, -1 리턴 while((pos = str.indexOf(' '))!=-1){ // 0 부터 pos 전까지 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){ m=str.length(); answer=str; } return answer; } public static void main(String[] args) { chap2_3 T = new chap2_3(); Scanner kb = new Scanner(System.in); // 한줄을 받아야 하므로, Line으로 받는다 String str = kb.nextLine(); System.out.println(T.solution(str)); } }
인프런 - 김영한
스프링 MVC 1편 - 섹션4 mvc 패턴 개요, 적용
mvc 패턴을 사용하는 이유
redirect 와 forward 방식