알고리즘 문제풀이

[알고리즘] 가운데 글자 가져오기

wonderson 2022. 5. 13. 22:56
반응형

구글링 구글링!!!!! 좀 해라 오류난 부분 구글링하면 나온다.

항해99_알고리즘 주차 문제와 해결_3

[JAVA]

문제 참고 : https://programmers.co.kr/learn/courses/30/lessons/12937

문제 : [가운데 글자 가져오기]

문제 설명

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.재한사항

  • s는 길이가 1 이상, 100이하인 스트링입니다.

입출력 예

s (문자열)                                                                                return (반환되는 값)

"abcde" "c"
"qwer" "we"

내가 해 본 거

1. 먼저 문제 분석

- 단어 길이가 홀수이면 가운데 한 글자 가져오기

- 단어 길이가 짝수이면 가운데 두 글자 가져오기

--> 단어 가운데 글자 반환하는 함수

 

2. 규칙 찾기 & 정리

- solution() 함수로 만들자. 

public statc String solution()

 

첫 번째 : 단어길이 계산

두 번째 : if (단어길이가 짝수이면) {

                  result = 단어 중간 두글자 들고오기

 //미리 계산 해보면 글자 수 6개면 나누기 2 몫은 3 가져오는 값의 길이의 index는 0 부터 시작이니 2,3인 값을 들고 와야 함. 그러면 (to-from : 몫의-1 ~ 몫의 +1 로 2,3만 나올 수 있다.)

            } else if {

                  result = 단어 중간 한 글자 들고오기

//미리 계산 해보면 글자 수 5개면 나누기 2 몫은 2 가져오는 값의 길이의 index는 0 부터 시작이니 2인 값을 들고 와야 함. 그러면 (to-from : 몫 ~ 몫의 +1 로 2만 나올 수 있다.)

           }

           result = 저장된 값 반환

 

※ 참고

- 자바 단어 길이 세기
https://hianna.tistory.com/519

- 문자 안에 낱개문자 찾기 substring
https://jhnyang.tistory.com/335

 

- substring(첫 번째값, 두 번째 값) 

//to-from 첫 번째 값에서 두번째 값 바로 앞까지 결과 나온다.

 

3. 코딩화 & 구현

public class Main {
    public static void main(String[] args) {
        // write your code here
        String result= "";
        System.out.println(solution("result"));
        System.out.println(solution("score"));
        }


    public static String solution(String txt) {
        int count = txt.length();
        String result="";
        if(count %2 == 0){
            result = txt.substring(count/2 -1,count/2+1); //to-from 첫 번째 값에서 두번째 값 바로 앞까지 결과 나온다.
        } else {
            result = txt.substring(count/2, count/2+1);
        }

        return result;
    }
}
<실행 결과>
su
o

 

마지막으로 에러나 부분 ㅠㅠㅠㅠ 아우 진짜 ㅠ

팀원님 덕분에 찾아 낼 수 있었다. 제발 구글링 좀해라!

 

1. public class Main 할 때 중괄호를 몇 개 써 넣는 거냐 {} 확인 좀 잘하고

'class' or 'interface' expected

에러 메시지가 나왔으면 그냥 읽지말고 구글링 구글링 구글링!!!

 

2. 그리고 이부분에서 result 결과 값 받와야하는 줄 알고 그냥 result 썼는데 그게 아니라 일단 값을 넣어야 결과가 나온다. 그래서 "" 쌍따옴표 넣어줬더니 실행이 된다!!!

System.out.println(solution("result"));

 

반응형