반응형

프로그래머스 코딩테스트 가운데글자가져오기 링크 : 여기를 눌러주세요.

프로그래머스에 있는 코딩테스트 가운데글자가져오기 라는 제목의 문제입니다.

프로그래머스 코딩테스트 JAVA 레벨 1에 있는 ‘가운데글자가져오기’ 문제입니다.


코딩테스트 가운데글자가져오기 어떻게 풀지 생각해보기

이 문제를 보자마자 들었던 생각이

'아! 글자들을 자른뒤에 남은 글자를 return 해주면 될 것 같았습니다'

반복문속에 넣어서 글자들의 길이가 2보다 크다면,

맨앞과 맨뒤 글자를 자르고 다시 반복문 속에들어와

2보다 크다면 위 행동을 반복하고 2와 같다면 2글자를 리턴,

2보다 작다면 그 글자를 리턴 해주면 될 것같습니다!

잘라줄때 String을 사용하지않고 StringBuffer을 사용했습니다.

굳이 StringBuffer을 선언하지않고 String만으로도 문제풀이는 가능합니다.

저도 제가 왜 StringBuffer을 썼는지 모르겠네요...

이번문제는 생각보다 간단하게 풀 수 있었습니다.

(쉬워서 그런지 프로그래머스 1점오르더라구요...)


코딩테스트 통과한 소스보기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class Solution {
    @Test
    public void test() {
        assertEquals(Solution.solution("123"), "2");
    }
    public static String solution(String str) {
        String answer = "";
        StringBuffer cutStr = new StringBuffer();
        cutStr.append(str);
        for(int i =0; i<str.length()/2; i++) { //2번 돈다.
//                System.out.printf("%d회\n",i);
            if(cutStr.length()>2) {
                cutStr = cutStr.deleteCharAt(0);
                cutStr = cutStr.deleteCharAt
                        (cutStr.length()-1);
            }else if(cutStr.length()==2){
                break;
            }
        }
        answer = cutStr.toString();
//            System.out.println(cutStr);
        return answer;
    }
}
 

조금이라도 효율성을 높이고자 반복문 속에 조건을 str.length/2를 해주었습니다.

나중에 다른분들의 소스코드를 보고 알았지만

꼭 반복문을 사용하지않아도 문제해결이 가능합니다.

혹시라도 이 글을 미리 보시고 아직 정답을 제출하지 않으신 분들이 있다면

반복문을 사용하지 않고 문제해결하는 방법을 생각해보는것도 좋을 것 같습니다.

(저도 보자마자 아..? 했네요 ㅋㅋㅋ)

모든 코드에는 정답이 없으며 저 또한 코드를 잘 짜는게 아니기 때문에

제 코드는 참고용으로만 사용해주시면 감사하겠습니다.

최대한 매일매일 1개의 코딩테스트 문제를 풀려고 노력중입니다.

아직 많이 부족해서 포스팅이 늦을 수 있으니 양해 부탁드립니다.

조언이나 가르침은 항상 기쁜마음으로 받겠습니다.

감사합니다 (_ _)

반응형

+ Recent posts