class Solution {
public int solution(String s) {
return Integer.valueOf(s);
}
}
다음과 같이 제출했지만, Integer.valueOf()
의 알고리즘 자체를 만드는 것이 문제의 의도라 생각하여 다른 답안을 다시 공부하였다...
pubilc Class Solution {
public int solution (String str) {
private boolean sign = true; //양수
int result = 0;
//str를 인덱스 순으로 형변환 (Char -> Int)
for(int i = 0; i < str.length; i++) {
char c = str.charAt(i);
//1. 음수 확인 2. 양수: true 유지 3. 숫자일 때 형변환
if (c == '-') {
sign = false;
} else if ( c != '+') {
result += result * 10 + c - '0';
}
return (sign ? 1 : -1) * result;
}
}
- 부호 결정: 음수일 때
sign
을 false로 바꿈- 문자(char) - '0' : 아스키코드 차이로 문자를 숫자로 형변환
return
에서 부호곱은 간단히 표현 가능.charAt(index)
활용