hoon's bLog

[Java] 프로그래머스 가운데 글자 가져오기 자바 본문

코딩테스트/프로그래머스

[Java] 프로그래머스 가운데 글자 가져오기 자바

개발한기발자 2022. 8. 6. 10:13
반응형

문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/12903

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


[문제 설명]

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요.

단어의 길이가 짝수라면 가운데 두 글자를 반환하면 됩니다.

[제한사항]

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

[입출력 예]

s return
"abcde" "c"
"qwer" "we"

[나의 풀이]

class Solution {
    public String solution(String s) {
        String answer = "";
        if(s.length()%2 == 0){
            answer = s.substring((int) Math.floor((s.length()-1)/2), (int) Math.floor((s.length()-1)/2)+2);
        }else{
            answer = s.substring(s.length()/2, (s.length()/2)+1);
        }
        System.out.println(answer);
        return answer;
    }
}

[다른 사람의 풀이]

class StringExercise{
    String getMiddle(String word){
        return word.substring((word.length()-1) / 2, word.length()/2 + 1);    
    }
    
    public static void  main(String[] args){
        StringExercise se = new StringExercise();
        System.out.println(se.getMiddle("power"));
    }
}

[정리]

- 애초에 분기를 칠 필요 없었던 문제... 문자 길이 가운데보다 한자리 작은 데부터 큰 데까지 return 하면 그만...

 

개인피셜 난이도 : ★☆☆

조건문을 활용한 분기는 많아지면 프로그램 성능에 영향을 미친다.

이와 같은 수학적 원리(?)를 코딩으로 녹여내는 생각을

많이 해봐야겠다.

풀면 풀수록 멀어진다는 생각하지말기!!!ㅠㅠㅠㅜ

 

끝.

728x90
반응형