본문 바로가기
Algorithm/프로그래머스

[프로그래머스]연습문제 : 문자열을 정수로 바꾸기 (level 1)

by HBGB 2019. 11. 6.

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 해서 자리를 올려주는 방법도 있다. 

 

 

댓글