알고리즘 문제풀이(1)

DeadWhale·2022년 5월 1일
0

프로그래머스

목록 보기
10/21
post-thumbnail

2022/10/10 태그 정리를 위해 수정

백준, 프로그래머스의 답변 기반으로 구현된 사이트이라고 한다
메인 메소드와 솔루션 메소드 2개로 구현되어있다
그래서 조금 헷갈리는거 같다 ㅋㅋ
혼자서 풀어볼 때는 솔루션에 문제를 안보내고
그냥 메인에서 답을 처리해버리고 그런다 ㅋㅋ

진행 한것

  • 문자 찾기
  • 대소문자
  • 문장 속 단어
  • 단어 뒤집기

문자 찾기

한 개의 문자열을 입력받고, 특정 문자를 입력받아 해당 특정문자가 입력받은 문자열에 몇 개 존재하는지 알아내는 프로그램을 작성하세요.

대소문자를 구분하지 않습니다.문자열의 길이는 100을 넘지 않습니다.

해결 : str값을 입력 받고 str.length( )(str길이)만큼 반복 하면서
if문으로 charAt(반복순서) 으로 입력받은 값을 확인한다
true 일 경우 count ++ ;


대소문자

대문자와 소문자가 같이 존재하는 문자열을 입력받아 대문자는 소문자로 소문자는 대문자로 변환하여 출력하는 프로그램을 작성하세요.

해결 : 배열은 반복하면서 유니코드를 기반으로 97이하는 LowerCase()을 이용해 대문자로 변환 이상은 UpperCase()를 이용해 대문자로 바꾼다


문장 속 단어 찾기

한 개의 문장이 주어지면 그 문장 속에서 가장 긴 단어를 출력하는 프로그램을 작성하세요.

문제를 처음 보고 어? 뭘로 분리하지? 했는데 방법이 두가지나 있었다
더 많을거 같다

  1. split( )을 이용해서 문자를 짤라내서 저장하는 방법
  2. indexOf( )을 사용해서 긴단어 짤라내기

split ( )

import javax.print.DocFlavor;
import java.util.Scanner;

class Main {
    public String solution(String str){

        String answer="";
        int max = Integer.MIN_VALUE; //가장 작은 값으로 초기화된다
        String[] s = str.split(" ");

        for(String x : s){
            if(max < x.length()){
               answer = x;
               max=x.length();
            }
        }
        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));
    }
}

indexOf( )

import javax.print.DocFlavor;
import java.util.Scanner;

class Main {
    public String solution(String str){
        String answer="";
        int m = Integer.MIN_VALUE, pos;

        while((pos=str.indexOf(' '))!=-1){
            String temp = str.substring(0,pos);
            int len=temp.length();
                if(len>m){
                    m=len;
                    answer = temp;
                }
                str = str.substring(pos+1);
        }
    if(str.length()>m)answer = atr;
        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));
    }
}


알고리즘을 이해하는걸 우선으로 하면서 함수들에 더 익숙해져야겟다.

0개의 댓글