문제 설명
[소스 코드 & 결과]
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;
}
}
[설명]
- length() 함수를 사용하여 단어의 길이를 length변수로 넣었다.
- 배열의 길이를 출력할 경우에는 length 함수를 사용한다. 예) arry.length
- if 문을 사용하여 단어의 길이가 홀짝인 경우에 따른 값을 출력했다.
- substring을 사용하여 특정 문자열을 잘라냈다.
- substring(int startIndex, int endIndex)는 startIndex(포함)부터 endIndex(불포함)까지 문자열을 리턴한다.
[다른 분이 짠 코드]
class Solution {
public String solution(String s) {
String answer = "";
int len = s.length();
for(int i = 0; i < len; i++){
if(len % 2 == 0){ // 단어의 길이가 짝수
answer += s.charAt(len/2 - 1);
answer += s.charAt(len/2); break;
}else{ //단어의 길이가 홀수
answer += s.charAt(len/2); break;
}
}
return answer;
}
}
- substring대신 charAt을 사용하여 문자열을 잘랐다.
- +=를 사용해서 문자열을 합쳤다.
이 코드를 보고 for문이 없어도 코드가 정상적으로 작동할 것 같아 삭제해 봤다.
[수정한 값]
class Solution {
public String solution(String s) {
String answer = "";
int len = s.length();
// 단어의 길이가 짝수
if(len % 2 == 0){
answer += s.charAt(len/2 - 1);
answer += s.charAt(len/2);
}
else{
// 단어의 길이가 홀수
answer = s.charAt(len/2);
}
return answer;
}
}
[결과]
- 결과에는 문제가 없었다.
트러블 슈팅
원인
홀수인 경우에는 += 가 필요 없이 않을까 하는 생각에 지우고 프로그램을 다시 실행해 봤다.
[결과]
추측
incompatible types error
- String asnwer값에 char형이 들어가서 호환하지 않는 것이다.
시도
- 따라서 String.valueOf()를 사용하여 char를 String으로 변환했다.
[결과]
- 정상적으로 잘 작동했다.
요약
1. 단어의 길이가 홀수인 경우에는 값이 하나이기때문에 "+=" 대신 "="를 넣고 실행하니 에러가 발생했다.
2. incompatible types error로 String asnwer값에 char형이 들어가서 호환하지 않는 것으로 추측했다.
3. 따라서 String.valueOf()를 사용하여 char를 String으로 변환했다.
4. 정상적으로 잘 작동되었다.
[출처] [rei050r:티스토리]
https://rei050r.tistory.com/86
[JAVA] 가운데 글자 가져오기
문제 설명 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 제한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입
rei050r.tistory.com
'프로그래머스' 카테고리의 다른 글
[프로그래머스]약수의 개수와 덧셈 (Java) (1) | 2024.10.03 |
---|---|
[프로그래머스] 제일 작은 수 제거하기(Java) (1) | 2024.09.27 |
[프로그래머스] 조건문 switch (0) | 2024.09.09 |
[프로그래머스]자릿수 더하기 (0) | 2024.09.07 |
[프로그래머스] 배열의 평균값 - 반복문 활용, 형변환 (0) | 2024.09.06 |