Far from it.
문자열을 정수로 바꾸기 본문
문제 설명
문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.
제한 조건
- s의 길이는 1 이상 5이하입니다.
- s의 맨앞에는 부호(+, -)가 올 수 있습니다.
- s는 부호와 숫자로만 이루어져있습니다.
- s는 0으로 시작하지 않습니다.
입출력 예
예를들어 str이 1234이면 1234를 반환하고, -1234이면 -1234를 반환하면 됩니다.
str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다.
class Solution {
public int solution(String s) {
String input = s; // 입력받은 문자열 형태의 숫자
String [] list = new String[input.length()]; // 문자열의 길이만큼 배열을 생성
String outPut=""; // 문자열로 받을 아웃풋 값을 받기 위한 변수
for (int i= 0 ; i<input.length() ; i++) { // 문자열의 길이만큼 반복
list[i]=input.substring(i,i+1); // 문자열을 하나씩 쪼개어 배열에 저장
}
if (list[0].equalsIgnoreCase("+")) { // 0번째 배열이 +인지 판단
for (int i= 1 ; i<input.length() ; i++) { // 맞다면 1번째 배열부터 문자열의 길이만큼 아웃풋에 저장
outPut+=list[i];
}
}else if(list[0].equalsIgnoreCase("-")) { // 문자열이 -인지 판단
for (int i= 1 ; i<input.length() ; i++) { // 위와 동일한 방법
outPut+=list[i];
}
}else
for (int i= 0 ; i<input.length() ; i++) { // 둘다 아니라면 정수형태이므로 그대로 0번째부터 저장
outPut+=list[i];
}
int intOutPut = Integer.valueOf(outPut); // 문자열을 정수형으로 전환하여 intOutPut에 저장
if(list[0].equalsIgnoreCase("+")) { // + - 를 구분하여 intOutPut에 부호를 정함.
intOutPut = intOutPut*1;
}else if (list[0].equalsIgnoreCase("-")){
intOutPut = intOutPut*-1;
}
return intOutPut;
}
}
//
코드가 너무 난잡한 것 같다.
다른사람들의 답과 비교해보면서 다듬어보자.
//
멍청했다..
Integer.valueOf()를 쓸꺼면
class Solution {
public int solution(String s) {
String ss = s;
int intOutPut = Integer.valueOf(ss);
return intOutPut;
}
}
이렇게 하면 끝나버린다.
'문제풀기' 카테고리의 다른 글
최대공약수와 최소공배수 (0) | 2019.09.17 |
---|---|
하샤드 수 (0) | 2019.09.17 |
행열의 덧셈 (0) | 2019.09.17 |
약수의 합 (0) | 2019.09.08 |
소수 찾기 (에라토스테네스의 체) (1) | 2019.09.06 |