728x90
출처 https://school.programmers.co.kr/learn/courses/30/lessons/181847
[ 정답 ]
class Solution {
public String solution(String n_str) {
int str = Integer.parseInt(n_str); //문자열 → 정수
String answer = String.valueOf(str); //정수 → 문자열
return answer;
}
}
0으로 시작하는 문자열에서 0으로 시작하는 부분을 제거하는 문제입니다.
아래와 같은 방법으로 해결하였습니다.
⓵ 주어진 문자열을 정수로 변환한다.
→ Integer.parseInt( )
⓶ 문자열로 반환하라고 하였으므로 정수를 문자열로 다시 변환한다.
→ String.valueOf( )
[ 오답 ]
class Solution {
public String solution(String n_str) {
String answer = "";
for(int i = 0; i < n_str.length(); i++) {
if(n_str.charAt(i) == '0') {
answer += "";
} else {
answer += n_str.charAt(i);
}
if(i > 0 && n_str.charAt(i) == '0' && n_str.charAt(i-1) != '0') {
answer += n_str.charAt(i);
}
}
return answer;
}
}
저는 처음에 이와 같은 방법으로 코드를 작성하였는데 테스트2에서 자꾸 실패가 떴습니다. 문자열의 인덱스번호 순서대로 반복문을 순회하는데 0으로 시작하면 값을 삭제시키고, 0이 아니면 해당값을 그대로 누적하는 방식으로 했습니다.
또한, '해당값 전에 직전값이 존재함' + '해당값이 0으로 시작' + '해당값의 직전값이 0이 아닌 수' 이라는 조건문도 작성하였습니다.
기존 코드의 문제는 반복문을 통해 각 문자에 대해 조건을 확인하고 처리하는 방식이기 때문에, 불필요한 복잡성이 있습니다. 문자열의 앞부분에 있는 0들을 제거한 후 나머지 문자열을 그대로 반환하면 됩니다. 따라서 위와 같은 정답 코드로 수정하여 제출하게 되었습니다.
728x90
'📍 코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Java] 주사위 게임2 (3) | 2024.09.01 |
---|---|
[프로그래머스/Java] 첫 번째로 나오는 음수 (0) | 2024.07.20 |