끄적끄적 코딩일지

[Programmers]문자열 정수로 바꾸기(난이도 :★★) 본문

알고리즘

[Programmers]문자열 정수로 바꾸기(난이도 :★★)

BaekGyuHyeon 2022. 5. 16. 16:50

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

 

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

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

programmers.co.kr

class Solution {
    public int solution(String s) {
        int answer = parseInt(s);
        return answer;
    }
    // Integer.parseInt 구현해보기
    public int parseInt(String n) {
		int tmp = 1;
		char[] arry = n.toCharArray();
		int ans = 0;
		int positive = 1;
		for(int i = arry.length-1; i > -1; i--) {
			if(arry[i] > 57 || arry[i] < 48) {
				if(arry[i] == 45) {
					positive *= -1;
					continue;
				}else if(arry[i] == 43){
					continue;
				}else{
					throw new NumberFormatException("문자가 섞여있습니다.");
				}
			}
			int num = arry[i] - 48;
			ans += (num * tmp);
			tmp *= 10;
		}
		return ans * positive;
	}
}