카테고리 없음

TIL_20250216

casylm 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 방식

 

728x90