티스토리 뷰

728x90

programmers.co.kr/learn/courses/30/lessons/12925

 

코딩테스트 연습 - 문자열을 정수로 바꾸기

문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요. 제한 조건 s의 길이는 1 이상 5이하입니다. s의 맨앞에는 부호(+, -)가 올 수 있습니다. s는 부호와 숫자로만 이루어져있습니

programmers.co.kr

C++ 문자열

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

예를들어 str이 1234이면 1234를 반환하고, -1234이면 -1234를 반환하면 됩니다.

 

접근방법

문자열을 숫자로 바꾸는 아주 간단한 문제인데 한가지 추가된 점은 앞의 부호를 처리해줘야 한다는 점이다.

+가 나오면 그냥 넘어가면 되고 -가 나오면 isMinus라는 불타입 변수로 저장해 두었다가 마지막 결과 값에

-1을 곱해주었다.

(풀이 시간 : 20분)

부호를 처리하는 과정을 for문 안에서 할지 밖에서 할지 고민했는데

안에서 하게 되면 매 반복 때마다 if문을 처리해야해서 밖에서 처리하는게 훨씬 시간이 적게 걸린다.

 

소스코드

#include <string>
#include <vector>

using namespace std;

int solution(string s) {
    int answer = 0;
    bool isMinus = false;
    int i = 0;
    if(s[0] == '-'){
        isMinus = true;
        i++;
    }else if(s[0] == '+'){
        i++;
    }
    for(; i < s.length() ; i++){
        answer *= 10;
        answer += s[i]-'0';
    }
    if(isMinus){
        answer *= -1;
    }
    return answer;
}

요즘 너무 쉬운 문제만 푸는것 같아서 오늘은 시간도 적게 걸린김에 두문제 풀었다.

728x90
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함