👀 문제
https://programmers.co.kr/learn/courses/30/lessons/12925
👊 도전
1. 설계
- startsWith()으로 앞에 부호가 있는지 체크, 있다면 substring()으로 앞을 제외하고 숫자로 바꾼다.
- 부호가 없다면 바로 parseInt()를 사용한다.
2. 구현 (성공 코드)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/**
*
* @author HEESOO
*
*/
class Solution {
public int solution(String s) {
int answer = 0;
if(s.startsWith("+"))
answer=Integer.parseInt(s.substring(1,s.length()));
else if(s.startsWith("-"))
answer=Integer.parseInt(s.substring(1,s.length()))*(-1);
else
answer=Integer.parseInt(s);
return answer;
}
}
3. 결과
🤟 성공 🤟
4. 설명
- startsWith()을 이용해 부호가 있는지 체크한다.
- 부호가 있다면 맨 앞을 제외한 나머지 문자열을 숫자로 변환한다.
- 부호가 없다면 바로 parseInt()한다.
👏 해결 완료!
나는 parseInt가 음수인 경우에는 안될거라 생각하고 구현했는데, 직접 해보니 음수도 가능했다. 또 어떤 사람들은 parseInt()를 사용하지 않고 아스키코드를 이용해 푼 사람도 있었다.