반응형

[처음에 내가 작성한 코드]
import java.util.*;
class Solution {
public String solution(String s) {
String answer = "";
List<String> list = new ArrayList<>();
String[] arr = s.split("");
for(int i = 0; i<arr.length; i++){
list.add(arr[i]);
}
System.out.println(list);
for(int j=0; j<list.size(); j++){
if(s.length() % 2 == 0){
answer = s.substring(s.length() / 2 - 1, s.length() / 2 + 1);
}else{
answer = list.get(list.size() / 2);
}
}
return answer;
}
}
처음에는 일단 무조건 for문을 돌아야한다고 생각을 해서 ArrayList도 쓰고 String[ ] 배열에 입력된 단어를 split으로 잘라서 넣고 했다.
짝수일 경우에 두 글자 반환하는 경우의 코드를
answer = s.substring(s.length() / 2 - 1, s.length() / 2 + 1);
이렇게 짜니 위에 코드들이 불필요하다고 느껴졌다.
[개선한 코드]
import java.util.*;
class Solution {
public String solution(String s) {
String answer = "";
// 단어의 길이가 짝수
if(s.length() % 2 == 0){
answer = s.substring(s.length() / 2 - 1, s.length() / 2 + 1);
}
// 단어의 길이가 홀수
else{
answer = s.substring(s.length() / 2, s.length() / 2 + 1);
}
return answer;
}
}
코드를 간결하게 짤 수 있는 문제였다. 사실 여태 풀었던 다른 코드들도 마찬가지 일 것 같긴 하다.
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 약수의 개수와 덧셈 - (JAVA/ 자바) (1) | 2025.04.01 |
---|---|
[프로그래머스] 수박수박수박수박수박수? - (JAVA/ 자바) (2) | 2025.03.30 |
[프로그래머스] 제일 작은 수 제거하기 - (JAVA/ 자바) (1) | 2025.03.28 |