문자열을 정수로 바꾸기
1 minute read
Programmers.co.kr 코딩테스트 연습
Level 1 - 사용언어 Java - 문자열을 정수로 바꾸기
나의 답안
class Solution {
public int solution(String s) {
int answer = 0;
boolean negative = false;
boolean skipFirstChar = false;
char firstChar = s.charAt(0);
if (firstChar == '-') {
negative = true;
skipFirstChar = true;
} else if (firstChar == '+') {
skipFirstChar = true;
}
if (skipFirstChar) {
for (int i = 1; i < s.length(); i++) {
answer = (answer * 10) + (int)(s.charAt(i) - 48);
}
} else {
for (int i = 0; i < s.length(); i++) {
answer = (answer * 10) + (int)(s.charAt(i) - 48);
}
}
answer = negative? -answer : answer;
return answer;
}
}
피드백을 받아서 진화한 나의 답안
class Solution {
public int solution(String s) {
int answer = 0;
char firstChar = s.charAt(0);
String number = Character.isDigit(firstChar) ? s : s.substring(1);
for (int i = 0; i < number.length(); i++) {
answer = (answer * 10) + (int) (number.charAt(i) - 48);
}
return answer = (firstChar == '-') ? -answer : answer;
}
}
잘 정리된 다른 사람의 답안..
public class StrToInt {
public int getStrToInt(String str) {
boolean Sign = true;
int result = 0;
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if (ch == '-')
Sign = false;
else if(ch !='+')
result = result * 10 + (ch - '0');
}
return Sign?1:-1 * result;
}
이건 반칙!!
class Solution {
public int solution(String s) {
int answer = 0;
answer = Integer.parseInt(s);
return answer;
}
}