본문 바로가기
Language/Java

[Programmers | Java | 연습문제 풀이] 문자열을 정수로 바꾸기 - Solution with Integer.valueOf()

by ㅇ달빛천사ㅇ 2024. 6. 12.
728x90

KDT 실무형 스프링 백엔드 엔지니어 양성과정 6기 | Algorithm CODEKATA

🔁 문자열을 정수로 바꾸기

🏷 관련 주제 : 형 변환 문자열 정수



문제 설명

문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.

제한 조건

  • s의 길이는 1 이상 5이하입니다.
  • s의 맨앞에는 부호(+, -)가 올 수 있습니다.
  • s는 부호와 숫자로만 이루어져있습니다.
  • s는 "0"으로 시작하지 않습니다.

입출력 예

예를들어 str이 "1234"이면 1234를 반환하고, "-1234"이면 -1234를 반환하면 됩니다.
str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다.


✔ Solution with Integer.valueOf()

class Solution {
    public int solution(String s) {
        int answer = Integer.valueOf(s);

        return answer;
    }
}
채점 결과


💥 오늘 만난 문제 & 나의 시도 💦 & 해결 방법 👍

📌 오늘 만난 문제 : 문자열 s를 숫자로 변환한 결과를 반환하시오.


처음에 문자열 앞에 '+' 또는 '-'가 올 수 있다고 해서
charAt()으로 첫 문자를 가져와서 조건문으로 양수, 음수를 체크한 후에
substring()으로 부호를 뺀 부분을 잘라내서 숫자로 변환 후,
곱하기 -1을 해주거나 해주지 않는 코드를 썼는데


class Solution {
    public int solution(String s) {
        int answer = 0;
        char c = s.charAt(0);

        if (c == '-') {
            return Integer.valueOf(s.substring(1, s.length())) * -1;
        } else if (c == '+') {
            return Integer.valueOf(s.substring(1, s.length()));
        }
        return Integer.valueOf(s);
    }
}
채점 결과 채점 결과


다시 코드를 보니 Integer.valueOf()가 부호도 그대로 변환할 수 있지 않을까? 하는 생각이 들어서
그냥 써 봤는데 됨!!! 🤓‼

그래서 코드가 엄청 간단해졌다.

class Solution {
    public int solution(String s) {
        int answer = Integer.valueOf(s);

        return answer;
    }
}

💬 무엇을 새롭게 알았는지

Integer.valueOf()는 부호도 알아서 판단하고 문자열을 숫자로 변환해 준다는 것을 알게되었다.


📚 References(참고 자료)

728x90


Top