문제
문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.
제한 조건
- s의 길이는 1 이상 5이하입니다.
- s의 맨앞에는 부호(+, -)가 올 수 있습니다.
- s는 부호와 숫자로만 이루어져있습니다.
- s는 "0"으로 시작하지 않습니다.
입출력 예
예를들어 str이 "1234"이면 1234를 반환하고, "-1234"이면 -1234를 반환하면 됩니다.
str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다.
코드
#include <string>
using namespace std;
int solution(string s)
{
return stoi(s);
}
나의 생각
stoi 함수를 사용하면 문제가 바로 풀린다.
stoi는 string to int의 약자로 문자열 형태의 숫자를 int형으로 변환한다.
주로 문자열 형태의 10진수를 int형으로 변환할 때 많이 사용되며 2진수 8진수 16진수 형태의 문자열도 파싱 가능하다.
문제를 보면 알겠지만 -123과 같은 문자열도 똑똑하게 음수로 변환한다.
만약 문자열이 숫자로 시작하고 뒤에 문자가 섞여있다면 숫자까지만 변환해서 반환한다.
int main(void)
{
string str = "123helloworld";
int num = stoi(str);
cout << num; // 123 출력
}
다른 예로 문자열이 문자로 시작한다면 stoi함수를 에러를 뱉는다.
int main(void)
{
string str = "helloworld123";
int num = stoi(str);
cout << num; // Error!
}
'Algorithm > 프로그래머스 : Level 1' 카테고리의 다른 글
[프로그래머스 Level 1] 3진법 뒤집기 (0) | 2021.11.11 |
---|---|
[프로그래머스 Level 1] 가운데 글자 가져오기 (0) | 2021.11.11 |
[프로그래머스 Level 1] 약수의 개수와 덧셈 (0) | 2021.11.10 |
[프로그래머스 Level 1] 비밀지도 (2018 카카오 기출) (0) | 2021.11.10 |
[프로그래머스 Level 1] 폰캣몬 (0) | 2021.11.09 |