본문 바로가기
코딩 테스트/[JAVA] programmers 코딩 테스트 연습

[No.14] 문자열을 정수로 바꾸기 / 프로그래머스 코딩 테스트 연습 JAVA

by M개발자 2021. 6. 8.
반응형

문자열을 정수로 바꾸기


문제 설명

 

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

 

조건

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

예시

 

s return
"1234" 1234
"-1234" -1234

코드 해석 및 전체 코드

 

알고리즘

1. 부호 판단

2. 문자를 숫자로 변환

 

1. 부호 판단

부호를 판단하기 위해 boolean 타입의 sign 변수를 선언하여 초기값으로 true를 준다. 

sign이 true이면 +, false이면 - 를 의미한다.

 

2. 문자를 숫자로 변환

for문에서 s의 문자열 길이만큼 반복한다.

char 타입의 ch에는 숫자로 변환하기 위한 문자를 charAt(int index) 이용하여 저장해준다. 

 

ch가 '-'일 경우 sign을 false로 저장한다.

 

ch가 '0' ~ '9'일 경우

answer를 먼저 10을 곱해준다. ch는 문자열의 1의 자리로 들어가야 하므로 기존 저장되어있는 문자열의 1의 자리를 0으로 만들어준다. 

그리고 ch에 '0'을 뺀 뒤 더해준다. 

 

문자열 정수로 변환해주는 메서드

Integer.parseInt(String str)

str의 맨 앞에 -가 있을 시 음수로 변환해준다. 

 

class Solution {
    public int solution(String s) {
        int answer = 0;
        
        boolean sign = true; // true : +  false : -
        
        for(int i = 0; i < s.length(); i++){
            char ch = s.charAt(i);
            
            if (ch == '-') sign = false;
            
            else if('0' <= ch && ch <= '9') answer = answer * 10 + (ch - '0');
        }
        
        if(sign == false ) answer = -answer;
        
        //answer = Integer.parseInt(s);
        return answer;
    }
}

 


github

programmers

반응형

댓글