PS

프로그래머스 - 최댓값과 최솟값

728x90

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

 

코딩테스트 연습 - 최댓값과 최솟값

문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 (최소값) (최대값)형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를

programmers.co.kr

 

단순한 최대, 최소 찾기 문제이다.

s 의 최대 길이가 문제에 제시되 있지 않아서

이중 포문을 쓰면 시간 초과가 날지 안날지 알 수 가 없었는데

일단은 통과가 되었다.

s 의 길이가 컸다면 통과하지는 못했을 것이다.

그때는 뭐 투포인터 쓰든가 해서 시간 초과를 피할듯하다

 

- c++

 

#include <algorithm>
#include <string>
 
#define INF 987654321
#define INF2 -987654321
 
using namespace std;
 
string solution(string s) {
    string answer = "";
    int len = s.length(), min_num = INF, max_num = INF2;
    
    for (int i = 0; i < len; ++i) {
        int temp = 0, j;
        string str = "";
        
        if (s[i] != ' ') {
            for (j = i; j < len; ++j) {
                if (s[j] != ' ') str.push_back(s[j]);
                else break;
            }
        }
        
        i = j;
        if (str != "") {
            temp = stoi(str);
            min_num = min(min_num, temp);
            max_num = max(max_num, temp);   
        }
    }
    
    string min_str, max_str;
    min_str = to_string(min_num);
    max_str = to_string(max_num);
    
    answer = min_str + " " + max_str;
    return answer;
}
cs

 

 

 

728x90

'PS' 카테고리의 다른 글

프로그래머스 - 124 나라의 숫자  (0) 2020.12.07
프로그래머스 - 피보나치 수  (0) 2020.12.07
BOJ 17142 - 연구소 3  (0) 2020.12.07
BOJ 1780 - 종이의 갯수  (0) 2020.12.04
BOJ 17141 - 연구소 2  (0) 2020.12.04