고구마와 감자
Amor DevFati(아모르 개발파티)
고구마와 감자
전체 방문자
오늘
어제
  • 분류 전체보기
    • 스프링
    • 알고리즘
      • 백준
      • 프로그래머스
      • 인프런_자바코테강의
      • 리트코드
      • 해커랭크
      • 코드업
      • 이것저것
    • 자바
    • GIT
    • 파이썬
    • 개발이론
    • JPA
    • 김영한 강의
      • 모든 개발자를 위한 HTTP 웹 기본 지식
      • 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
      • 스프링 핵심 원리 - 기본편
    • 일기 및 아무말 적기

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 11023
  • 10409
  • Mini Fantasy War
  • 1598
  • 더하기 3
  • 꼬리를 무는 숫자 나열
  • 5361
  • 16673
  • 조교는 새디스트야!!
  • 홀수일까 짝수일까
  • 5988
  • 백준
  • 14656
  • 고려대학교에는 공식 와인이 있다
  • 남욱이의 닭장
  • 11966
  • 전투 드로이드 가격
  • 2857
  • 2921
  • 2의 제곱인가

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
고구마와 감자

Amor DevFati(아모르 개발파티)

인프런 3. 문장 속 단어 (Java)
알고리즘/인프런_자바코테강의

인프런 3. 문장 속 단어 (Java)

2022. 3. 7. 21:25

 

첫 번째 풀이 (내 풀이)

 

public class Main {

    public String solution(String str) {
        String answer = "";
        String[] arr =  str.split(" ");
        int maxLength = Integer.MIN_VALUE;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i].length() > maxLength) maxLength = arr[i].length();
        }
        for (String s : arr) {
            if (s.length() == maxLength) {
                answer = s;
                break; // 중복단어 있을 경우 맨 앞 단어 출력
            }
        }
        return answer;
    }

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

 

두 번째 풀이

 

public class Main2 {

    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) {
        Main2 T = new Main2();
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine(); // 1줄을 입력 받기 위해서는 nextLine() 사용
        System.out.println(T.solution(str));
    }
}

 

세 번째 풀이

흠 내가 이렇게 풀 수 있으면 좋겠넹. 

public class Main3 {

    public String solution(String str) {
        String answer = "";
        int m = Integer.MIN_VALUE, pos;
        // indexOf 와 subString 사용하여 풀이
        while ((pos = str.indexOf(' '))  != -1) {
            String tmp = str.substring(0, pos); // pos 전까지
            int len = tmp.length();
            if (len > m) { // => 같다로 하면 뒤에서 나온 답을 답으로 할 수 있음. 이렇게 해야 앞쪽에서 발견된 단어가 답이 됨.
                m = len;
                answer = tmp;
            }
            str = str.substring(pos+1); // 위에서 판별한 단어는 제외하고 str에 저장하여 반복됨.
        }
        // 반복문의 마지막 단어는 뒤에 공백이 없어 반복문이 종료되어 길이 대조를 못함.
        // 마지막 단어 체크
        if(str.length() > m) answer = str;
        return answer;
    }

    public static void main(String[] args) {
        Main3 T = new Main3();
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine(); // 1줄을 입력 받기 위해서는 nextLine() 사용
        System.out.println(T.solution(str));
    }
}

'알고리즘 > 인프런_자바코테강의' 카테고리의 다른 글

인프런 6. 중복 문자 제거 (Java)  (0) 2022.03.10
인프런 5. 특정 문자 뒤집기 (Java)  (0) 2022.03.10
인프런 4. 단어뒤집기 (Java)  (0) 2022.03.10
인프런 2. 대소문자 변환 (Java)  (0) 2022.03.07
인프런 1. 문자찾기 (Java)  (0) 2022.03.07
    '알고리즘/인프런_자바코테강의' 카테고리의 다른 글
    • 인프런 5. 특정 문자 뒤집기 (Java)
    • 인프런 4. 단어뒤집기 (Java)
    • 인프런 2. 대소문자 변환 (Java)
    • 인프런 1. 문자찾기 (Java)
    고구마와 감자
    고구마와 감자
    Amor DevFati는 김연자-Amor Fati에 Development(개발)의 Dev 를 첨가하여 만든 이름

    티스토리툴바