문제 링크 :https://programmers.co.kr/learn/courses/30/lessons/42862
문제 설명
총학생수와 체육복을 잃어버린 학생과 체육복이 2벌인 학생이 주어지는데 체육복에는 사이즈가있음.
그래서 자기 앞번호나 뒷번호의 학생꺼 밖에 못입는다 .. 최대로 체육복을 입을수 있는 학생수를 return ..
주의사항 자기가 잃어버렸는데 자기가 한벌 더있다. 그럼 자기꺼 먼저입어야됨 .
알고리즘
1.잃어버린학생이 옷이한벌더 있나 확인 ->있으면 -1로 갱신, 체육복입은 학생수 ++
2.잃어버린학생이 옷이 한벌더 없다면 여벌 옷이 있는 학생중 자기 번호 앞뒷 사람중 있는지 확인
3.잃어버린학생이 옷을 빌렸다면 그학생과 옷을빌려준 학생을 -1로 갱신..->체육복입은 학생수 ++
4. 체육복입은 학생수 return .
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
#include <string>
#include <vector>
using namespace std;
int solution(int n, vector<int> lost, vector<int> reserve) {
int answer = n;
answer = answer - lost.size();
for (int i = 0; i < lost.size(); i++) {
int num = lost[i];
for (int j = 0; j < reserve.size(); j++) {
if (num == reserve[j]) {
reserve[j] = -1;
lost[i] = -1;
answer++;
}
}
}
for (int i = 0; i < lost.size(); i++) {
int num = lost[i];
if (num == -1) {
continue;
}
for (int j = 0; j < reserve.size(); j++) {
if (reserve[j] == -1) continue;
if (num == reserve[j] - 1||num==reserve[j]+1) {
lost[i] = -1;
reserve[j] = -1;
answer++;
break;
}
}
}
return answer;
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
|
'c++ > 프로그래머스' 카테고리의 다른 글
프로그래머스 : 카드게임 (0) | 2020.04.03 |
---|---|
프로그래머스 : 탑 (0) | 2020.04.02 |
프로그래머스 : 숫자야구 (0) | 2020.04.02 |
프로그래머스 : 등굣길 (0) | 2020.04.02 |
프로그래머스 :정수 삼각형 (0) | 2020.04.02 |