728x90
문제
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
제한사항
- s는 길이가 1 이상, 100이하인 스트링입니다.
입출력예제
s return
| "abcde" | "c" |
| "qwer" | "we" |
코드
public class Solution25_3 {
public static String solution(String s) {
String answer = "";
if (s.length() % 2 == 0) { // 길이가 짝수일 때
answer = s.substring(s.length() / 2 - 1, s.length() / 2 + 1); // subString 매개변수의 뒤에 것 -1까지 가져온다는 것에 주의. 즉 s.length()/ 2-1 ~ s.length() / 2 까지 가져오니 한 문자만 가져온다.
}
else { // 길이가 홀수일 때
answer = s.substring(s.length() / 2, s.length() / 2 + 1);
}
return answer;
}
public static void main(String[] args) {
String s = "abcde";
String s1 = "qwer";
System.out.println(solution(s));
System.out.println(solution(s1));
}
}
substring 매개변수의 뒤에 것 -1까지 가져온다는 것에 주의. 즉 s.length()/ 2-1 ~ s.length() / 2까지 가져오니 한 문자만 가져온다.
if else를 한 줄로 바꾼 코드*
public class Solution25_3 {
public static String solution(String s) {
String answer = "";
answer = s.substring((s.length() - 1) / 2, s.length() / 2 + 1);
//자바에서는 / * 연산이 + - 연산보다 우선순위가 높으니 꼭 괄호를 해주자
return answer;
}
public static void main(String[] args) {
String s = "abcde";
String s1 = "qwer";
System.out.println(solution(s));
System.out.println(solution(s1));
}
}
홀수일 때 5/2를 해서 2를 가져오는 것이니 4/2와 몫이 같으므로 한 줄로 줄일 수 있다.
728x90
'Java 알고리즘 공부 (프로그래머스)' 카테고리의 다른 글
| [프로그래머스 Lv1] 문자열 내 마음대로 정렬하기 (Java) (0) | 2023.09.16 |
|---|---|
| [프로그래머스 Lv1] 나누어 떨어지는 숫자 배열 (Java) (1) | 2023.09.16 |
| [프로그래머스 Lv1] 같은 숫자는 싫어 (Java) (0) | 2023.09.16 |
| [프로그래머스 Lv1] 2016년 (Java) (0) | 2023.09.16 |
| [프로그래머스 Lv1] 폰켓몬 (Java) (0) | 2023.09.16 |