프로그래머스 코딩테스트 가운데글자가져오기 링크 : 여기를 눌러주세요.
프로그래머스에 있는 코딩테스트 가운데글자가져오기 라는 제목의 문제입니다.
프로그래머스 코딩테스트 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();
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();
return answer;
}
}
|
조금이라도 효율성을 높이고자 반복문 속에 조건을 str.length/2를 해주었습니다.
나중에 다른분들의 소스코드를 보고 알았지만
꼭 반복문을 사용하지않아도 문제해결이 가능합니다.
혹시라도 이 글을 미리 보시고 아직 정답을 제출하지 않으신 분들이 있다면
반복문을 사용하지 않고 문제해결하는 방법을 생각해보는것도 좋을 것 같습니다.
(저도 보자마자 아..? 했네요 ㅋㅋㅋ)
모든 코드에는 정답이 없으며 저 또한 코드를 잘 짜는게 아니기 때문에
제 코드는 참고용으로만 사용해주시면 감사하겠습니다.
최대한 매일매일 1개의 코딩테스트 문제를 풀려고 노력중입니다.
아직 많이 부족해서 포스팅이 늦을 수 있으니 양해 부탁드립니다.
조언이나 가르침은 항상 기쁜마음으로 받겠습니다.
감사합니다 (_ _)
'알고리즘' 카테고리의 다른 글
[자바예제] 프로그래머스 코딩테스트 나누어떨어지는숫자배열 풀이 (0) | 2020.08.27 |
---|---|
[자바예제] 프로그래머스 코딩테스트 같은숫자는싫어 풀이 (0) | 2020.08.27 |
[자바예제] 프로그래머스 코딩테스트 2016년문제 풀기 (0) | 2020.08.27 |
[자바예제] 프로그래머스 코딩테스트 모의고사 문제 풀기 (0) | 2020.08.27 |
[자바예제] 완주하지 못한 선수 (0) | 2020.08.27 |