Coding Test/인프런_자바 코딩테스트

String(문자열) - 3. 문장 속 단어

똧이 2022. 3. 1. 18:05
반응형

출처: 인프런 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비

https://www.inflearn.com/course/%EC%9E%90%EB%B0%94-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-%EC%BD%94%ED%85%8C%EB%8C%80%EB%B9%84/

 

자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 - 인프런 | 강의

자바(Java)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 코딩테스트에서 가장 많이 출제되는 Top 10 Topic을 다루고 있습니다. 주제와 연동하여 기초문제부터 중급문제까지 단계적으로 구성

www.inflearn.com

라고 하셔서 코드만 올립니다



import java.util.Scanner;

public class Main {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        String[] strArr = str.split("\\s");
        String answer = "";
        int max = 0;

        for(int i = 0; i < strArr.length; i++){
            if(strArr[i].length() > max){
                answer = strArr[i];
                max = strArr[i].length();
            }
        }

        System.out.println(answer);
    }
}

 

 

- 놓쳤던 부분

1. next()로 하니 안됐던게 nextLine()으로 하니까 됐다. 

next()와 nextLine()의 차이
nextLine()메소드는 Enter를 치기 전까지 쓴 문자열 모두 반환한다는 것이고
next()메소드는 공백(space) 전까지 입력받은 문자열을 반환한다는 것이다.

출처: https://velog.io/@alswp2274/JAVA-next-nextLine%EC%9D%98-%EC%B0%A8%EC%9D%B4

2. 공백으로 split 하는 부분은 split(" ")으로 해도 가능하지만 split("\\s") 또는 split("\\s+") (공백이 여러 개인 경우)로 하는 것이 정확하다.

3. 처음에는 strArr[i], strArr[i+1]로 비교해서 하려고 했지만, 그것보다 max값을 선언한 후 max와 strArr[i].length()를 비교하는 것이 훨씬 효율적이라고 판단하였다.

728x90