[프로그래머스] 문자열을 정수로 바꾸기

김유원·2024년 1월 15일
0

📝24.01.15

🔗 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12925?language=csharp

문제 설명

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

제한 조건

  • s의 길이는 1 이상 5이하입니다.
  • s의 맨앞에는 부호(+, -)가 올 수 있습니다.
  • s는 부호와 숫자로만 이루어져있습니다.
  • s는 "0"으로 시작하지 않습니다.

[C#] 내가 작성한 풀이

public class Solution {
    public int solution(string s) {
        int answer = 0;
        
        if(s[0] == '+') {
            string splitStr = s.Substring(1);
            answer = int.Parse(splitStr);
        } else if(s[0] == '-') {
            string splitStr = s.Substring(1);
            answer = int.Parse(splitStr);
            answer *= -1;
        } else {
            answer = int.Parse(s);
        }
        return answer;
    }
}

[C#] 남이 작성한 풀이

제한 조건을 읽고, 맨 앞의 부호를 해결하는 게 관건인 문제라고 생각했다.
하지만 아니었다. Parse는 부호마저 처리해준다는 것을 알게되었다.
매우 간단한 문제였다.

public class Solution {
    public int solution(string s)
    {
        int answer = int.Parse(s);
        return answer;
    }
}

[C++] 내가 작성한 풀이

그래서 위의 풀이를 보고 C++은 stoi면 해결이 될 것 같아 확인해보았고, 예상대로 적용되었다.

#include <string>
#include <vector>

using namespace std;

int solution(string s) {
    int answer = stoi(s);
    return answer;
}

[C++] 남이 작성한 풀이

sstream을 이용한 풀이도 있었다. 물론 이 문제에는 가장 적합한 풀이는 아니라고 생각한다.

#include <string>
#include <vector>
#include <sstream>

using namespace std;

int solution(string s) {
    int answer = 0;
    stringstream ss;
    ss.str(s);
    ss >> answer;

    return answer;
}
profile
개발 공부 블로그

0개의 댓글

관련 채용 정보