알고리즘 풀이 방법입니다.
문제(Problem) -> 생각(Think) -> 해결책(Solution) -> 리뷰(Review) 를 통해서 정리해서 작성합니다.
Problem📄

https://programmers.co.kr/learn/courses/30/lessons/12925

 

코딩테스트 연습 - 문자열을 정수로 바꾸기

문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요. 제한 조건 s의 길이는 1 이상 5이하입니다. s의 맨앞에는 부호(+, -)가 올 수 있습니다. s는 부호와 숫자로만 이루어져있습니

programmers.co.kr

 


Think🤔

양수이면 String.ValueOf로 바로 반환이 가능하다.

하지만 양수에 +가 올수도 있음! 그러면 맨 앞의 부호가 +이고 -인 것을 판별하고,

그것이 아니면 양수이기 때문에 String.ValueOf로 출력하면 될 것 같다.

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

-1을 해주면 변환된 줄 알았는데 1234가 그대로 나온다.

 

뭐가 문제일까? 곱하기 -1을 하면 음수가 되는것이 아니였나?

 

parseInt가 부호까지 가지고 와서 변형시켜 줬다...


Solution✍
class Solution {
    public int solution(String s) {
        int answer = 0;
        
        answer = Integer.parseInt(s);
        
        return answer;
    }
}

한 줄로 완성이 됨...


Review🤩

음수 양수로 혹시 판단하는 메서드가 없나 하고 찾아봤는데.. 

Math.sign(x)

- x의 부호 값을 반환함.

 

이런 함수도 있다는 것을 알게 되었다!


 

+ Recent posts