Algorithm/프로그래머스
[프로그래머스]연습문제 : 문자열을 정수로 바꾸기 (level 1)
HBGB
2019. 11. 6. 22:51
https://programmers.co.kr/learn/courses/30/lessons/12925
코딩테스트 연습 - 문자열을 정수로 바꾸기 | 프로그래머스
문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요. 제한 조건 s의 길이는 1 이상 5이하입니다. s의 맨앞에는 부호(+, -)가 올 수 있습니다. s는 부호와 숫자로만 이루어져있습니다. s는 0으로 시작하지 않습니다. 입출력 예 예를들어 str이 1234이면 1234를 반환하고, -1234이면 -1234를 반환하면 됩니다. str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다.
programmers.co.kr
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
class Solution {
public int solution(String s) {
int answer = 0;
// 첫번째 자리가 숫자가 아니면 반복문은 1부터
int iStart = (s.charAt(0) < '0') ? 1 : 0;
boolean isNegative = (s.charAt(0) == '-');
// answer += 자릿값 * 10의 n승
for (int i = iStart; i < s.length(); i++) {
answer += (s.charAt(i) - '0') * Math.pow(10, s.length() - 1 - i);
}
if (isNegative) {
answer *= -1;
}
return answer;
}
}
Colored by Color Scripter
|
TIP1
Integer.parseInt(s) 라면 1줄에 끝나지만...!
TIP2
|
1
2
3
|
for (int i = iStart; i < s.length(); i++) {
answer = answer * 10 + (s.charAt(i) - '0');
}
Colored by Color Scripter
|
Math.pow() 대신에
기존의 수 * 10 해서 자리를 올려주는 방법도 있다.