코딩테스트 - 프로그래머스/Lv. 0

[78] JAVA 0 떼기

유혁스쿨 2023. 11. 29. 18:02
728x90
반응형

문제 설명

정수로 이루어진 문자열 n_str이 주어질 때, n_str의 가장 왼쪽에 처음으로 등장하는 0들을 뗀 문자열을 return하도록 solution 함수를 완성해주세요.

 

 

제한사항

  • 2 ≤ n_str ≤ 10
  • n_str이 "0"으로만 이루어진 경우는 없습니다.

 

입출력 예
n_str result
"0010" "10"
"854020" "854020"

 

입출력 예 #1

  • "0010"의 가장 왼쪽에 연속으로 등장하는 "0"을 모두 제거하면 "10"이 됩니다.

입출력 예 #2

  • "854020"는 가장 왼쪽에 0이 없으므로 "854020"을 return합니다.

[나의 풀이]

class Solution {
	public String solution(String n_str) {
    	return String.valueOf(Integer.parseInt(n_str));
    }
}

 

[다른 풀이]

class Solution {
	public String solution(String n_str) {
        int index = -1;
        for (int i = 0; i < n_str.length(); i++) {
            if(n_str.charAt(i) >= '1') {
                index = i;
                break;
            }
        }
        return n_str.substring(index);
    }	
}

문자열의 길이만큼 loop를 돌린다.

문자열의 첫번째 요소값이 '1'보다 크거나 같으면 해당 index를 글로벌 변수에 저장하고 루프를 종료한다.

(여기서 char끼리의 비교는 unicode값의 비교다 - 값이 클수록 unicode값도 커진다.)

이후 문자열에서 저장된 인덱스 만큼 문자열을 잘라낸 이후의 값을 반환한다.

728x90
반응형