0 떼기
문제 설명
정수로 이루어진 문자열 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) {
String answer = "";
return answer;
}
}
풀이
class Solution {
public String solution(String n_str) {
String answer = "";
// int i = 0: 반복문의 시작을 위해 정수형 변수 i를 선언하고 0으로 초기화
// i < n_str.length(): 반복문이 계속 실행될 조건 (문자열 끝까지)
// i++: 반복문의 각 실행 뒤에 i의 값을 1씩 증가 (다음문자로 이동)
for (int i = 0; i < n_str.length(); i++) {
// n_str.charAt(i)는 문자열 n_str의 i번째 문자를 의미
// char 타입의 변수 c에 할당
char c = n_str.charAt(i);
// 문자가 '0'이 아닌 경우,
// -> 그 문자에서 문자열의 끝까지를 substring 메서드를 사용해 잘라냄
// 그 후 answer에 할당한 후 루프를 break로 종료
if (c != '0') {
answer = n_str.substring(i);
break;
}
}
return answer;
}
}
문자열 n_str을 받아서 시작 부분에 0이 아닌 문자가 나올 때까지 모든 0을 제거
결과를 반환하는 메소드 solution 정의
for 루프를 사용하여 문자열의 각 문자를 차례대로 확인
- substr(x, y) : x번째 숫자부터 y개 숫자 잘라서 출력, y 생략 시 끝까지 출력
- substring(x, y) : x번째 숫자부터 y번째 숫자까지 출력, 생략 시 끝까지 출력
- char(x) : x번째 문자 출력
- String() 객체 : 여러 메소드와 결합하여 문자열을 나타냄
- charAt() : string 타입으로 받은 문자열을 char 타입으로 한 글자만 변경
풀이 2
class Solution {
public String solution(String n_str) {
return String.valueOf(Integer.parseInt(n_str));
}
}
string 값을 Integer.parseInt로 int 값으로 만듬
=> 0이 왼쪽에 있는경우 int값으로 변경되면서 사라짐
=> String.valueOf()함수를 사용하여 다시 String값으로 변환하여 리턴
- String.valueOf( )
: 파라미터가 null이면 문자열 "null"을 만들어서 변환 - ToString( )
: 대상 값이 null이면 NPE(Null PointerException)을 발생시키고 Object에 담긴 값이 String이 아니여도 출력한다
https://school.programmers.co.kr/learn/courses/30/lessons/181847
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr