[프로그래머스] 문자열을 정수로 바꾸기
문자열의 길이는(s는) 1~5이고, s 맨 앞에는 부호(+,-)가 올 수 있다고 한다.
부호에 따른 처리가 필요한 것인지 궁금했지만 일단 매개변수로 받은 문자열 s를 정수로 casting 해보았다.
1  | import java.util.*;  | 
우선 이렇게 코딩 후 실행하니 테스트케이스를 전부 통과했고, 놀랍게도 제출하니 정답으로 통과했다.
하지만 남들이 푼 코드를 보니 API에 의존한 내가 너무 부끄럽게 느껴질 정도였다.
남들이 푼 코드 중 하나를 가져와서 atoi에 대해 다시 한번 익혀보도록 하자.
1  | public class Solution {  | 
매개변수 문자열 str을 toCharArray로 문자로 char 변수에 받은 후  - 부호가 존재하면 plus 상태를 false라고 해주고 만약 +부호 일때는 if문을 벗어난다.
문자 중 부호가 없으면 else 문으로 진입하게 되는데, 여기서부터가 atoi의 핵심이다. 
1  | for (char ch : str.toCharArray()) {  | 
String 객체에 담긴 문자열이 int 형 변수에 Integer로 Casting 되는 과정이다.
1  | //ex) String = 12  | 
초반에 result에 10을 곱해주는 이유는 Decimal 데이터를 얻어야 하기에 그렇다.
또한 아스키코드 상에서 48은 문자열 0이므로 문자열 1(49)에서 문자열 0(48)을 빼주면 정수 1이 출력될 수 있다. 마지막으로 plus 상태가 true이면 바로 value 출력, false면 value에 -1을 곱한 후 리턴해주면 된다.
[프로그래머스] 문자열을 정수로 바꾸기
![[Kotlin] 2장. 변수와 자료형, 연산자](/images/Kotlin.png)
![[안드로이드] 기본 위젯들](/images/android.png)
![[Elasticsearch] Elasticsearch Engineer Training -4](/images/elastic.jpeg)