ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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 방식

     

Designed by Tistory.