반응형
문제
https://school.programmers.co.kr/learn/courses/30/lessons/42862
- 난이도 : LV 1
- 소요 시간 : 15분
접근 방법
학생의 체육복 개수 저장할 배열을 만들어서 1로 초기화한다.
여분의 개수를 가진 학생은 배열 값을 2 로 만들어준다.
도난 당한 학생은 체육복 개수를 -1로 해준다.
전체 배열을 돌면서, 체육복 개수가 0이라면
먼저 앞 요소가 2 이면 2-1 / 0+1 로 빌려줌 처리를 해준다.
앞 요소가 2가 아니고 뒤 요소가 2 라면 마찬가지로 빌려줌 처리를 해준다.
나의 풀이
#include <string>
#include <vector>
#include <iostream>
using namespace std;
int solution(int n, vector<int> lost, vector<int> reserve) {
int answer = 0;
vector<int> v(n, 1);
for(int i : reserve) {
v[i-1] = 2;
}
for(int i : lost) {
v[i-1]--;
}
for(int i=0; i<v.size(); i++) {
if (v[i] == 0) {
// 앞
if (v[i-1] == 2) {
v[i-1]--;
v[i]++;
}
// 뒤
else if (v[i+1] == 2) {
v[i+1]--;
v[i]++;
}
}
}
for(int i : v) {
if (i > 0) answer++;
}
return answer;
}
정리
테스트 케이스를 실행했는데 아무리 해도 이해가 안가서일단 제출했더니 정답이라 떴다..잘못 된 거 같아서 질문 남겼는데 혹시 제가 잘못된 거라면 댓글로 이해 시켜주시면 감사하겠습니다 ㅎ
https://school.programmers.co.kr/questions/75027
>> 문제 바뀌기 전에 풀었을 때 내가 추가했던 거였다 ㅎ...
반응형
'코딩테스트' 카테고리의 다른 글
[백준] 14172. 넴모넴모 (Easy) - C++ (3) | 2024.07.16 |
---|---|
[백준] 20154. 이 구역의 승자는 누구야?! - C++ (5) | 2024.07.16 |
[프로그래머스] 문자열 내 p와 y의 개수 - JAVA (0) | 2024.04.19 |
[프로그래머스] 완주하지 못한 선수 - C++ (0) | 2024.04.08 |
[프로그래머스] 없는 숫자 더하기 - C++ (0) | 2024.04.04 |