Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

개발자되기 프로젝트

[프로그래머스] 문자열을 정수로 바꾸기 본문

코테준비

[프로그래머스] 문자열을 정수로 바꾸기

Seung__ 2021. 12. 13. 22:25

1. 문제


문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.

 

제한 조건

  • s의 길이는 1 이상 5이하입니다.
  • s의 맨앞에는 부호(+, -)가 올 수 있습니다.
  • s는 부호와 숫자로만 이루어져있습니다.
  • s는 "0"으로 시작하지 않습니다.

입출력 예

예를들어 str이 "1234"이면 1234를 반환하고, "-1234"이면 -1234를 반환하면 됩니다.

str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다.

 

2. 문제 정리


  • 문자열을 정수로 바꾸기
  • parseInt vs valueOf
    • partInt -> 반환 타입 : primitive
    • valueOf -> 반환 타임 : Integer

 

3. 코드


class Solution {
    public int solution(String s) {
        if (s.charAt(0) == '+'){
            return Integer.parseInt(s.substring(1, s.length()));
        }else if(s.charAt(0) == '-') {
            return  -1*Integer.parseInt(s.substring(1, s.length()));
        }else return Integer.parseInt(s);
    }
}

 

 

4. 직접 구현


  • 그냥 parseInt쓰자니 너무 심심하다. 직접 구현하자 ㅋㅋㅋ
  • '0' 은 정수형으로 48이다.
  • 즉 '숫자'는  '숫자'에서 48을 빼면 정수형으로 표현이 가능하다.
  • 또는 'n' - '0'도 가능
  • 이 때 자리수를 고려하여 쭉 더해주면 끝.
class Solution {
    public int solution(String s) {
        if (s.charAt(0) == '+'){
            return stringToInt(s.substring(1, s.length()));
        }else if(s.charAt(0) == '-') {
            return  -1*stringToInt(s.substring(1, s.length()));
        }else return Integer.parseInt(s);
    }


    private int stringToInt(String stringNumber){
        int result = 0;
        for (int i= stringNumber.length()-1; i>=0; i--){
            result += (int) ((stringNumber.charAt(i) - 48) * Math.pow(10, stringNumber.length() - 1 - i));
        }
        return  result;
    }
}

 

5. GitHub : 211213 StringToInt


 

GitHub - bsh6463/coding_test

Contribute to bsh6463/coding_test development by creating an account on GitHub.

github.com

 

Comments