[programmers] 문자열을 정수로 바꾸기(Java)

J-Cheol·2023년 12월 27일
0

프로그래머스

목록 보기
26/27
post-thumbnail

문제


프로그래머스 문제링크

풀이 코드


class Solution 
{
    public int solution(String s) 
    {
        boolean sign = true;
        int answer = 0;
        int i = 0;
        char[] number = s.toCharArray();
        while(i < number.length)
        {
            if(number[i] == '-' && sign == true)
                sign = false;
            else if(number[i] == '-' && sign == false)
                sign = true;
            else if (number[i] >= '0' && number[i] <= '9')
                answer = answer * 10 + (number[i] - '0');
            i++;
        }
        answer *= sign ? 1 : -1;
        return answer;
    }
}

리뷰


  1. 문자열을 정수로 변환하는 문제입니다.
  2. 정수 앞에는 부호가 들어올 수 있으며, 부호가 몇개 있는지에 대한 조건은 없었습니다.
    2-1. 부호가 여러개일 수 있다는 가정하에 코드를 작성하였습니다.
  3. boolean sign을 통해 양수인지 음수인치 판별합니다.
    3-1. toCharArray를 사용하여 부호와 숫자를 char형태로 변환시켜줍니다.
    3-2. 부호를 확인하고 음수가 홀수개 일땐 false, 짝수개 일땐 true로 체크해둡니다.
    3-3. char는 숫자 1개만을 담을 수 있기 때문에 int로 넘겨줄때에는 answer = answer * 10 + (number[i] - '0') 형태가 필요합니다.
  4. 최종적으로 판별된 부호를 삼항연산자를 통해 answer에 곱해주고 반환합니다.

부호가 1개 일때

class Solution 
{
    public int solution(String s) 
    {
        return Integer.parseInt(s);
    }
}
profile
신입 백엔드 개발자(JAVA, Spring Boot, MYSQL)

0개의 댓글