[코테] 3. 문장 속 단어

byeol·2022년 10월 13일
0

코딩테스트

목록 보기
3/42

✔ 처음 생각

import java.util.*;

class Main{
 public String solution(String input){
    int[] arr_c = new int[input.length()];
    String[] arr = input.split("");
    int t= 0;
    for(int i=0;i<arr.length;i++ ){
      if(arr[i]!=null){
            t++;
            if(i==arr.length-1) arr_c[i]=t;
       }
     else{
          arr_c[i-1]=t; 
          t=0;   
       }
     }
   t=0;
   int max = -1;
   int num=0;
   for(int i=0;i<arr_c.length;i++){
     if (arr_c[i]>max){
        max=arr_c[i];
        num=i;
    }
   }
   int  j = num-max+1;
   String out ="";  
for(int i=j;i<=max;i++){
       out=out+arr[i];
     }
  return out;
  }

  public static void main(String[] args){
   Main T = new Main();
   Scanner kb = new Scanner(System.in);
   String input = kb.next();
   System.out.println(T.solution(input));
 }
}

nextLine() 단어가 하닌 한 줄
split함수는 띄어쓰기는 빼고 저장된다.
여기까지만 힌트를 얻고 다시 풀어보자
✔ 힌트 얻고 다시 푼 정답

import java.util.*;

class Main{
 public String solution(String input){
   String[] arr = input.split(" "); 
   int max = -1;
   int index =0;
   for(int i=0;i<arr.length;i++){
     if (arr[i].length()>max){
        max=arr[i].length();
        index=i;
    }
   }
  return arr[index];
  }

  public static void main(String[] args){
   Main T = new Main();
   Scanner kb = new Scanner(System.in);
   String input = kb.nextLine();
   System.out.println(T.solution(input));
 }
}

중요한 것은
String[] arr = input.split(" "); 이건 띄어쓰기를 중심으로 단어 하나하나
String[] arr = input.split(""); 이건 철자 하나하나

✔️ 강의 정답1

import java.util.*;
class Main{
 public String solution(String str){}
    String answer="";
    int min= Integer.MIN_VALUE;
    String[] s = str.split(" ");
    for(String x: s){
      int len=x.length();
      if(len>min){
        min=len;
        answer=x;
      }
    }
    return answer;
}

 public static void main(String[] args){
   Main T = new Main();
   Scanner kb = new Scanner(Sytstem.in);
   String str = kb.nextLine();
   System.out.println(solution(str));
 
 }

✔️ 강의 정답2

import java.util.*;
class Main{
 public String solution(String str){
    String answer="";
    int min= Integer.MIN_VALUE, pos;
    while((pos=str.indexOf(' ')!=-1)){
     String tmp = str.substring(0,pos);
     int len = tmp.length();
     if(len>min){
        min=len;
        answer=tmp;
     }
     str=str.substring(pos+1);
    }
    if(str.length()>min) answer=str;
    return answer;
}

 public static void main(String[] args){
   Main T = new Main();
   Scanner kb = new Scanner(Sytstem.in);
   String str = kb.nextLine();
   System.out.println(solution(str));
 
 }
profile
꾸준하게 Ready, Set, Go!

0개의 댓글