알고리즘 풀이 방법입니다.
문제(Problem) -> 생각(Think) -> 해결책(Solution) -> 리뷰(Review) 를 통해서 정리해서 작성합니다.
Problem📄
https://programmers.co.kr/learn/courses/30/lessons/12925
코딩테스트 연습 - 문자열을 정수로 바꾸기
문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요. 제한 조건 s의 길이는 1 이상 5이하입니다. s의 맨앞에는 부호(+, -)가 올 수 있습니다. s는 부호와 숫자로만 이루어져있습니
programmers.co.kr
Think🤔
양수이면 String.ValueOf로 바로 반환이 가능하다.
하지만 양수에 +가 올수도 있음! 그러면 맨 앞의 부호가 +이고 -인 것을 판별하고,
그것이 아니면 양수이기 때문에 String.ValueOf로 출력하면 될 것 같다.
class Solution {
public int solution(String s) {
int answer = 0;
if(s.charAt(0) == '-'){
answer = Integer.parseInt(s) * -1;
}else{
answer = Integer.parseInt(s);
}
return answer;
}
}
-1을 해주면 변환된 줄 알았는데 1234가 그대로 나온다.
뭐가 문제일까? 곱하기 -1을 하면 음수가 되는것이 아니였나?
parseInt가 부호까지 가지고 와서 변형시켜 줬다...
Solution✍
class Solution {
public int solution(String s) {
int answer = 0;
answer = Integer.parseInt(s);
return answer;
}
}
한 줄로 완성이 됨...
Review🤩
음수 양수로 혹시 판단하는 메서드가 없나 하고 찾아봤는데..
Math.sign(x)
- x의 부호 값을 반환함.
이런 함수도 있다는 것을 알게 되었다!
'Algorithm' 카테고리의 다른 글
[프로그래머스] 문자열 다루기 기본 (0) | 2021.12.11 |
---|---|
[프로그래머스] 문자열 내 마음대로 정렬하기 (0) | 2021.12.07 |
[프로그래머스] 문자열 내림차순으로 배치하기 (0) | 2021.12.03 |
[프로그래머스] 수박수박수박수박수박수? (0) | 2021.12.03 |
[프로그래머스] 최대공약수와 최소공배수 (0) | 2021.12.03 |