Notice
Tags
- Personal_Study
- codingTest
- 리눅스마스터2급
- Image_classification
- tensorflow
- Operating_System
- Algorithm
- 티스토리챌린지
- Artificial_Intelligence
- c++
- Java
- Python
- C
- study
- kubeflow
- 2023_1st_Semester
- cloud_computing
- SingleProject
- app
- Android
- Univ._Study
- 자격증
- Kubernetes
- Database_Design
- datastructure
- programmers
- Baekjoon
- 오블완
- Linux
- Unix_System
코딩 기록 저장소
[프로그래머스/C++] 최댓값과 최솟값 본문
문제 정보
제목 : 최댓값과 최솟값
난이도 : Lv.2
사용 언어 : C++
문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/12939
문제 설명
문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요.
예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다.
제한 사항
- s에는 둘 이상의 정수가 공백으로 구분되어 있습니다.
입출력 예
s | return |
"1 2 3 4" | "1 4" |
"-1 -2 -3 -4" | "-4 -1" |
"-1 -1" | "-1 -1" |
입출력 예 설명
나의 풀이
s의 길이만큼 반복하는 for문을 생성하여 s[i]가 공백이 아니라면 tmp 문자열에 s[i]를 추가하고 공백이면 정수형으로 변환후 num벡터에 저장합니다.
반복이 끝나면 sort함수를 이용해 오름차순으로 정리한 후 answer배열에 to_string()함수를 이용하여 첫번째 값과 마지막 번째의 값을 저장한 후 리턴합니다.
코드
#include <string>
#include <vector>
#include <sstream>
#include <iostream>
#include <algorithm>
using namespace std;
string solution(string s) {
string answer = "";
string tmp="";
vector<int> num;
s += " ";
for(int i = 0; i < s.size(); i ++)
{
if( s[i] != ' ')
tmp += s[i];
else
{
num.push_back(stoi(tmp));
tmp ="";
}
}
sort(num.begin(),num.end());
answer = to_string(num.front()) + " "+ to_string(num.back());
return answer;
}
'프로그래머스 > Lv.2' 카테고리의 다른 글
[프로그래머스/Python] 숫자의 표현 (0) | 2023.01.20 |
---|---|
[프로그래머스/Python] 이진 변환 반복하기 (0) | 2023.01.19 |
[프로그래머스/Python] 올바른 괄호 (0) | 2023.01.19 |
[프로그래머스/C++] 최솟값 만들기 (0) | 2023.01.19 |
[프로그래머스/C++] JadenCase 문자열 만들기 (0) | 2023.01.19 |