728x90
프로그래머스 가운데 글자 가져오기 - Java
Description
- 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
제한사항
- s는 길이가 1 이상, 100이하인 스트링입니다.
입출력 예
s | return |
"abcde" | "c" |
"qwer" | "we" |
class Solution {
public String solution(String s) {
String answer = "";
int length = s.length();
if( length % 2 == 0) {
answer = s.substring((length/2)-1, (length/2)+1);
} else {
answer = s.substring((length/2), (length/2)+1);
}
return answer;
}
}
문자열의 길이를 2로 나눴을 때 나머지가 0이 나오면 문자열이 짝수의 길이라는 것이기 때문에
s.substring((length/2)-1, (length/2)+1);
만약 abcd 라는 문자열이라면 s.substirng(1,3)가 되는 것이므로
👉index 1의 값은 b, index 2의 값은 c 그래서 bc가 출력되게 된다.
이것을 이해했다면 전체 코드를 이해하는데 문제가 없을 것 같다!
class Solution {
public String solution(String s) {
int length = s.length(); //int length 선언
return (s.length % 2 == 0) ? s.substring((length/2)-1, (length/2)+1): s.substring((length/2), (length/2)+1);
//삼항연산자로 푼 모습
}
}
위에서 if문으로 푼 코드를 삼항 연산자로 간단하게 바꾸면 이렇게 된다!
class Solution {
public String solution(String s) {
String answer = "";
answer = s.substring((s.length()-1)/2, s.length()/2+1);
return answer;
}
}
정말 간단하게 해결한 다른 사람 풀이인데 코드를 보면
substring() 하나로만 문제를 해결한 모습을 볼 수 있다.
substring 괄호 안에 s.length()/2가 2.5와같은 소수가 나오면 어떡하지 라는 생각이 들 수도 있지만
index는 정수만 나오기 때문에 자동으로 소수 부분은 제거되고 int 형태의 정수만 나오게되어 저렇게 코드를 짜도 되는 것 같다.
'👨🏻💻Computer Science > 💻Algorithm' 카테고리의 다른 글
[프로그래머스] 음양더하기 - Java (0) | 2022.12.14 |
---|---|
[프로그래머스] 없는 숫자 더하기 - Java (0) | 2022.12.13 |
[프로그래머스] 문자열을 정수로 바꾸기 - Java (2) | 2022.12.12 |
[프로그래머스] 두 정수 사이의 합 - Java (0) | 2022.12.09 |
[프로그래머스] 짝수와 홀수 - Java (0) | 2022.12.07 |