rueki

프로그래머스 LV2. 최대값과 최솟값 본문

프로그래머스 연습

프로그래머스 LV2. 최대값과 최솟값

륵기 2022. 10. 7. 22:30
728x90
반응형

이번 문제는 너무 복잡하게 생각해서 초기 테스트케이스만 통과하게 되었다.

너무 많은 개념을 한번에 넣으려하니 간단한 문제도 이상하게 푸는듯..

 

- python

def solution(s):
    answer = ''
    num_list = list(map(int, s.split(" ")))
    num_list.sort()
    
    answer = str(num_list[0]) + ' ' + str(num_list[-1])

    return answer

 

- C++

#include <string>
#include <vector>
#include <algorithm>
#include <sstream>
#include <iostream>

using namespace std;

string solution(string s) {
    string answer = "";
    string token;
    int mn=0, mx = 0; 
    vector <int> v;
    
    for (stringstream str(s); str >> token;)
        v.push_back(stoi(token));
    sort(v.begin(), v.end());
    
    answer = to_string(v.front()) + " " + to_string(v.back());
        
    return answer;
}

stringstream 사용법 : https://roadtosuccess.tistory.com/83

 

[C++] stringstream 사용법(feat. stream과 버퍼란 무엇인가?)

C++에서 문자열을 공백과 \n 을 기준으로 int형 string형 float형 등 다양하게 자를 수 있도록 하는 stringstream이 존재한다. 이것을 어떻게 쓰는지 알아보도록 하자. stringstream을 설명하기 전에 stream은

roadtosuccess.tistory.com

특정 타입의 문자열을 뽑아내는 데 사용하기 편하다고 한다.

 

 

 

- 실패버전

def solution(s):
    number_list = []
    minus_stack = []
    answer = -1
    for n in s:
        if n == "-":
            minus_stack.append(n)
        elif n == " ":
            continue
        else:
            if not minus_stack:
                number_list.append(n)
            else:
                m = minus_stack.pop()
                number_list.append(int(n) * -1)
                
    min_n = min(number_list)
    max_n = max(number_list)
    
    answer = str(min_n) + " " + str(max_n)
    
    return answer
728x90
반응형
Comments