문자열을 정수로 바꾸기

문제정의


문자열을 정수로 변환하는 문제이다. 앞에는 부호(+,-)가 붙을 수 있다. 이 문제는 앞에 부호가 붙어있는지 확인한 다음, 그에 따라 달리 처리를 해주면 된다.

문제풀이


전체 코드는 다음과 같다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class StrtoInt {

public static void main(String[] args)
{
String s = "1234";
int answer = 0;
if(s.charAt(0) == '+')
answer = Integer.parseInt(s.substring(1));
if(s.charAt(0) == '-')
answer = Integer.parseInt(s.substring(1)) * (-1);
else
answer = Integer.parseInt(s);
}

}
'+'가 붙은 경우, 부호를 뺀 나머지를 int로 바꿔준다. '-'가 붙은 경우 '+'와 마찬가지로 문자열을 잘라내지만 int로 바꾼뒤에 -1을 곱해준다. 만약 아무 부호도 없을 경우 자연수이므로 문자열 전체를 int로 바꿔준다. 총 시간복잡도는 \(O(1)\)이다.

테스트