c++/프로그래머스 1 Lv
[프로그래머스] 문자열을 정수로 바꾸기
모든 것을 처음 시작하는 초짜 개발자
2023. 8. 22. 11:26
문제
문자열 s를 숫자로 변환한 결과를 변환하는 함수, solution을 완성하세요
제한사항
- s의 길이는 1이상 5이하입니다.
- s의 맨앞에는 부호(+, -)가 올 수 있습니다.
- s는 부호와 숫자로만 이루어져있습니다.
- s는 "0"으로 시작하지 않습니다.
문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/12925
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이[c++]
#include <string>
#include <vector>
using namespace std;
int solution(string s) {
int answer = 0;
bool minus(false);
for(int i=0;i<s.length();i++){
if(s[i]==45){
minus=true;
}
answer *= 10;
if(s[i]>=48)
answer += s[i]-48;
}
if(minus) answer*=-1;
return answer;
}
이 문제에서 고려해야할 점은 맨앞에 부호가 온다는 것이다.
부호가 올 경우 아스키코드에서 +는 43, -는 45이므로 이에 맞는 예외처리를 한다. 위 코드에서는 +는 무시하고 -는 bool minus에 값을 담아두었다가 마지막에 -을 곱해 주었다.
숫자는 문자에 아스키코드를 사용해 만든다.