반응형
문자열을 정수로 바꾸기
문제 설명
문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.
조건
- s의 길이는 1 이상 5 이하입니다.
- s의 맨 앞에는 부호(+, -)가 올 수 있습니다.
- s는 부호와 숫자로만 이루어져 있습니다.
- s는 "0"으로 시작하지 않습니다.
예시
s | return |
"1234" | 1234 |
"-1234" | -1234 |
코드 해석 및 전체 코드
알고리즘
1. 부호 판단
2. 문자를 숫자로 변환
1. 부호 판단
부호를 판단하기 위해 boolean 타입의 sign 변수를 선언하여 초기값으로 true를 준다.
sign이 true이면 +, false이면 - 를 의미한다.
2. 문자를 숫자로 변환
for문에서 s의 문자열 길이만큼 반복한다.
char 타입의 ch에는 숫자로 변환하기 위한 문자를 charAt(int index) 이용하여 저장해준다.
ch가 '-'일 경우 sign을 false로 저장한다.
ch가 '0' ~ '9'일 경우
answer를 먼저 10을 곱해준다. ch는 문자열의 1의 자리로 들어가야 하므로 기존 저장되어있는 문자열의 1의 자리를 0으로 만들어준다.
그리고 ch에 '0'을 뺀 뒤 더해준다.
문자열 정수로 변환해주는 메서드
Integer.parseInt(String str) |
str의 맨 앞에 -가 있을 시 음수로 변환해준다.
class Solution {
public int solution(String s) {
int answer = 0;
boolean sign = true; // true : + false : -
for(int i = 0; i < s.length(); i++){
char ch = s.charAt(i);
if (ch == '-') sign = false;
else if('0' <= ch && ch <= '9') answer = answer * 10 + (ch - '0');
}
if(sign == false ) answer = -answer;
//answer = Integer.parseInt(s);
return answer;
}
}
반응형
'코딩 테스트 > [JAVA] programmers 코딩 테스트 연습' 카테고리의 다른 글
[No.16] 이상한 문자 만들기/ 프로그래머스 코딩 테스트 연습 JAVA (0) | 2021.06.09 |
---|---|
[No.15] 약수의 합 / 프로그래머스 코딩 테스트 연습 JAVA (0) | 2021.06.09 |
[No.13] 수박수박수박수박수? / 프로그래머스 코딩 테스트 연습 JAVA (0) | 2021.06.08 |
[No.12] 문자열 다루기 기본 / 프로그래머스 코딩 테스트 연습 JAVA (0) | 2021.06.07 |
[No.11] 문자열 내림차순으로 배치하기 / 프로그래머스 코딩 테스트 연습 JAVA (0) | 2021.06.07 |
댓글