🎈 해결방법
stoi(const string& str)
string을 int 타입으로 바꿔주는 함수, & (reference)를 이용해서 string을 넘겨주며,
else temp += str[i];
현재 인덱스 string이 연산자가 아닐때 (else) temp에 현재 string을 추가하여
if (str[i] == '-' || str[i] == '+' || str[i] == '\0')
연산자가 나오면
if (minus)
result에 전에 나왔던 연산자가 minus인지를 확인한 후
if (minus) result -= stoi(temp);
else result += stoi(temp);
경우에 따라 -혹은 +계산을 해준다!
if (str[i] == '-') minus = 1;
연산자가 -일때는 minus bool을 true로 만들어준 상태
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
cin >> str;
string temp = "";
bool minus = false;
int result = 0;
for (int i = 0; i <= str.length(); i++) {
if (str[i] == '-' || str[i] == '+' || str[i] == '\0') {
if (minus)
result -= stoi(temp);
else
result += stoi(temp);
temp = "";
if (str[i] == '-')
minus = 1;
}
else
temp += str[i];
}
cout << result;
}
🎈 해결방법
이 문제의 해결법은 입력받은 시간들을 오름차순으로 정렬한 후, 정렬된 사람 번호의 순서대로 입력된 시간들을 적용하면 가장 최소의 시간이 도출되게 된다.
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int N;
cin >> N;
int p[1000];
for (int i = 0; i < N; i++)
cin >> p[i];
sort(p, p + N);
int result = 0;
for (int i = 0; i < N; i++) {
for (int j = 0; j <= i; j++) {
result += p[j];
}
}
cout << result;
}