๋ฌธ์ ์ค๋ช
์ ์ฌ์๊ฐ์ ๋๋์ด ๋ค์ด, ์ผ๋ถ ํ์์ด ์ฒด์ก๋ณต์ ๋๋๋นํ์ต๋๋ค. ๋คํํ ์ฌ๋ฒ ์ฒด์ก๋ณต์ด ์๋ ํ์์ด ์ด๋ค์๊ฒ ์ฒด์ก๋ณต์ ๋น๋ ค์ฃผ๋ ค ํฉ๋๋ค. ํ์๋ค์ ๋ฒํธ๋ ์ฒด๊ฒฉ ์์ผ๋ก ๋งค๊ฒจ์ ธ ์์ด, ๋ฐ๋ก ์๋ฒํธ์ ํ์์ด๋ ๋ฐ๋ก ๋ท๋ฒํธ์ ํ์์๊ฒ๋ง ์ฒด์ก๋ณต์ ๋น๋ ค์ค ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, 4๋ฒ ํ์์ 3๋ฒ ํ์์ด๋ 5๋ฒ ํ์์๊ฒ๋ง ์ฒด์ก๋ณต์ ๋น๋ ค์ค ์ ์์ต๋๋ค. ์ฒด์ก๋ณต์ด ์์ผ๋ฉด ์์ ์ ๋ค์ ์ ์๊ธฐ ๋๋ฌธ์ ์ฒด์ก๋ณต์ ์ ์ ํ ๋น๋ ค ์ต๋ํ ๋ง์ ํ์์ด ์ฒด์ก์์ ์ ๋ค์ด์ผ ํฉ๋๋ค.
์ ์ฒด ํ์์ ์ n, ์ฒด์ก๋ณต์ ๋๋๋นํ ํ์๋ค์ ๋ฒํธ๊ฐ ๋ด๊ธด ๋ฐฐ์ด lost, ์ฌ๋ฒ์ ์ฒด์ก๋ณต์ ๊ฐ์ ธ์จ ํ์๋ค์ ๋ฒํธ๊ฐ ๋ด๊ธด ๋ฐฐ์ด reserve๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ฒด์ก์์ ์ ๋ค์ ์ ์๋ ํ์์ ์ต๋๊ฐ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- ์ ์ฒด ํ์์ ์๋ 2๋ช ์ด์ 30๋ช ์ดํ์ ๋๋ค.
- ์ฒด์ก๋ณต์ ๋๋๋นํ ํ์์ ์๋ 1๋ช ์ด์ n๋ช ์ดํ์ด๊ณ ์ค๋ณต๋๋ ๋ฒํธ๋ ์์ต๋๋ค.
- ์ฌ๋ฒ์ ์ฒด์ก๋ณต์ ๊ฐ์ ธ์จ ํ์์ ์๋ 1๋ช ์ด์ n๋ช ์ดํ์ด๊ณ ์ค๋ณต๋๋ ๋ฒํธ๋ ์์ต๋๋ค.
- ์ฌ๋ฒ ์ฒด์ก๋ณต์ด ์๋ ํ์๋ง ๋ค๋ฅธ ํ์์๊ฒ ์ฒด์ก๋ณต์ ๋น๋ ค์ค ์ ์์ต๋๋ค.
- ์ฌ๋ฒ ์ฒด์ก๋ณต์ ๊ฐ์ ธ์จ ํ์์ด ์ฒด์ก๋ณต์ ๋๋๋นํ์ ์ ์์ต๋๋ค. ์ด๋ ์ด ํ์์ ์ฒด์ก๋ณต์ ํ๋๋ง ๋๋๋นํ๋ค๊ณ ๊ฐ์ ํ๋ฉฐ, ๋จ์ ์ฒด์ก๋ณต์ด ํ๋์ด๊ธฐ์ ๋ค๋ฅธ ํ์์๊ฒ๋ ์ฒด์ก๋ณต์ ๋น๋ ค์ค ์ ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
n | lost | reserve | return |
5 | [2, 4] | [1, 3, 5] | 5 |
5 | [2, 4] | [3] | 4 |
3 | [3] | [1] | 2 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์์ #1
1๋ฒ ํ์์ด 2๋ฒ ํ์์๊ฒ ์ฒด์ก๋ณต์ ๋น๋ ค์ฃผ๊ณ , 3๋ฒ ํ์์ด๋ 5๋ฒ ํ์์ด 4๋ฒ ํ์์๊ฒ ์ฒด์ก๋ณต์ ๋น๋ ค์ฃผ๋ฉด ํ์ 5๋ช
์ด ์ฒด์ก์์
์ ๋ค์ ์ ์์ต๋๋ค.
์์ #2
3๋ฒ ํ์์ด 2๋ฒ ํ์์ด๋ 4๋ฒ ํ์์๊ฒ ์ฒด์ก๋ณต์ ๋น๋ ค์ฃผ๋ฉด ํ์ 4๋ช
์ด ์ฒด์ก์์
์ ๋ค์ ์ ์์ต๋๋ค.
1์ฐจ ์๋
์๋ฒฝ 6์์ ํธ๋ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ .
c++์์ ๋ฒกํฐ๋ฅผ ์จ๋ณธ์ ์ด ์์ด ๊ด๋ จ api๋ฅผ ๊ฒ์ํ๋ฉด์ ํ์๋ค.
์๊ฐ์์ด ์ง๋ณธ ์ฒซ ์ฝ๋!
int solution(int n, vector<int> lost, vector<int> reserve) {
for(int i = 0; i<lost.size();i++){
for(int j = 0; j<reserve.size();j++){
if(lost[i]==reserve[j]){
lost.erase(lost.begin()+i);
reserve.erase(reserve.begin()+j);
break;
}
}
}
for(int i = 0; i<lost.size(); i++){
for(int j=0; j<reserve.size();j++){
if((lost[i]+1==reserve[j])||(lost[i]-1==reserve[j])){
lost.erase(lost.begin()+i);
reserve.erase(reserve.begin()+j);
}
}
}
return n-lost.size();
}
์ง๊ธ๋ณด๋๊น ๋ง์ด ์กฐ์กํ๋น ํคใ
ใ
๋จผ์ ์ฌ๋ฒ์ด ์์์ง๋ง ๋๋๋ง์ ๋ฐ๋ณด๊ฐ์ ํ์์ ๋บ๋ค.
๊ทธ๋ฆฌ๊ณ ์์ด๋ฒ๋ฆฐ ํ์์ ์ฐจ๋ก๋ก ์ํํ๋ฉด์ ์์ด๋ฒ๋ฆฐ ํ์์ ์์ด๋ ๋ค ๋ฒํธ๊ฐ ์ฌ๋ฒ์ท์ ๊ฐ์ง๊ณ ์๋ค๋ฉด ๊ฐ์ ๋ฐฐ์ด์์ ์ญ์ !
์ด ์ฝ๋๋ก ํ
์คํธ์ผ์ด์ค๋ ํต๊ณผํ์ง๋ง ์ฑ์ ์์ ๋ฐ์ชฝ์ง๋ฆฌ ๋ต์์ด์๋ค.
๋ฐ...๋ฌด์์ด ๋ฌธ์ ์ผ๊น...
๋ฒกํฐ์์ erase๋ฅผ ์ฐ๋ฉด ์ธ๋ฑ์ค๊ฐ ์ค๊ตฌ๋๋ฐฉ์ผ๋ก ๋๋ ๋ฌธ์ ๋ ์๋ค๊ณ ํ๋ ๊ทธ ๋ฌธ์ ๋ ์์ผ๋ ค๋? ๊ทผ๋ฐ ์ ๋ถ ์ํํ๋๋ฐ ๊ทธ๊ฒ ๋ฌธ์ ๊ฐ ๋๋ ค๋,,,
์ผ๋จ ๋ฐ๋ณต๋ฌธ์ ์ ๋ ๊ฒ ์ฐ๋๊ฑด ์๊ฐ๋ณต์ก๋๋ฉด์์ ๋ญ๋น์ธ๊ฒ ๊ฐ์์ ์ฒ์๋ถํฐ ๋ค์ ์์ํ๊ธฐ๋ก ํ๋ค.
2์ฐจ ์๋
๋จผ์ ๋ฒกํฐ๋ฅผ ํ๋ ๋ง๋ค๊ณ , ๋ชจ๋ ํ์์ด ์ท 1๋ฒ์ ๊ธฐ๋ณธ์ผ๋ก ๊ฐ์ง๊ณ ์๋ค๊ณ ํ์.
๊ทธ๋ฆฌ๊ณ ๋๋๋ง์ ํ์๋ค์ -1์ฉ ํ๋ฉด ๊ทธ๋ถ๋ค์ 0๋ฒ.
์ฌ๋ฒ์ ๊ฐ์ง๊ณ ์๋ ํ์๋ค์ +1์ฉ ํ๋ฉด ์ฌ๋ฒ์๋ ๋ถ๋ค์ 2๋ฒ, ์ฌ๋ฒ ์์๋๋ฐ ๋๋๋ง์ ๋ถ๋ค์ ๋ค์ 1๋ฒ.
๊ทธ๋ฆฌ๊ณ ์ฒซ ํ์๋ถํฐ ์ํํ๋ฉด์ ์ด ํ์์ด 0๋ฒ์ด๋ฉด ์๋ฒํธ ๋จผ์ ํ์ธํด์ ์ฌ๋ฒ์์ผ๋ฉด ๊ฐ์ ธ์ค๊ณ , ์๋๋ฉด ๋ท๋ฒํธ ํ์ธํด์ ๊ฐ์ ธ์ค๊ณ .
null์ฐธ์กฐ๋ ๋ฐฉ์งํด์ผํ๋๊น ์กฐ๊ฑด ๋ฌ์์ฃผ๋ฉด ๊ด์ฐฎ์๊ฒ ๊ฐ์๋ค.
1์ฐจ์๋์ ๋น์ทํ ๋๋์ง๋ง, ์ธ๋ฑ์ค๋ฅผ ์ง์ ์ฃผ๋ฌด๋ฅด๋ ๋๋์์ ์กฐ๊ธ ๋ค๋ฅธ..?
#include <string>
#include <vector>
#include <iostream>
using namespace std;
int solution(int n, vector<int> lost, vector<int> reserve) {
vector<int> students(n, 1);
int cnt=0;
for(int i=0;i<lost.size();i++){
students[lost[i]-1]--;
}
for(int i=0; i<reserve.size();i++){
students[reserve[i]-1]++;
}
for(int i=0;i<students.size();i++){
if((i>0)&&(students[i]==0)&&(students[i-1]==2)){
students[i]++;
students[i-1]--;}
if((i<n-1)&&(students[i]==0)&&(students[i+1]==2)){
students[i]++;
students[i+1]--;
}
}
for(int i=0;i<students.size();i++){
if(students[i]>0)cnt++;
}
return cnt;
}
๋ญ๊ฐ ๋ค๋ฅธ๊ฑด์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง ์๋ง erase๋ฅผ ์ฐ๋ ๊ณผ์ ์์ ๋ฌด์ธ๊ฐ ์์๊ฒ ์ง.
ํ๊ณ ๋ค๋ฅธ๋ถ์ ํ์ด๋ฅผ ๋ณด๋๋ฐ, ์ ์ ๋ง ๊น๋ํ ์ฝ๋๊ฐ ์์๋ค.
#include <string>
#include <vector>
using namespace std;
int student[35];
int solution(int n, vector<int> lost, vector<int> reserve) {
int answer = 0;
for(int i : reserve) student[i] += 1;
for(int i : lost) student[i] += -1;
for(int i = 1; i <= n; i++) {
if(student[i] == -1) {
if(student[i-1] == 1)
student[i-1] = student[i] = 0;
else if(student[i+1] == 1)
student[i] = student[i+1] = 0;
}
}
for(int i = 1; i <=n; i++)
if(student[i] != -1) answer++;
return answer;
}
์ ๊ฒ ์๋ง ํ์ฅfor๋ฌธ์ด์๋๊ฒ ๊ฐ์๋ฐ,, ๊ฒ์ํด๋ณด๋๊น for๋ฌธ์ autoํค์๋ ์ฌ์ฉํด์ ๋๋ฆฌ๊ธฐ๋ํ๊ณ ๊ทธ๋ฌ๋๋ผ.
์ด๋ถ ์ฝ๋๋ null์ฐธ์กฐ ๊ฑฑ์ ํ ์ผ๋ ์์ด๋ณด์ด๊ตฌ,, ๊ณ ์ ํฌ๊ธฐ๋ฐฐ์ด์ด๋๊น ์คํ์๋๋ ๊ด์ฐฎ์๊ฒ๊ฐ๊ตฌ,,,
๋ถ์กฑํ ๋๋ ๊ณต๋ถ ์ด์ฌํ ํด์ผ๊ฒ ๋ค ํคํค,,,
'learnings > PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[PS/ํ์/BFS/DFS] ์ฌ๊ธฐ์ ๊ธฐ ์ด๊ณณ์ ๊ณณ ํ์ํ์ 2 (0) | 2021.07.19 |
---|---|
[PS/ํ์/BFS/DFS] ์ฌ๊ธฐ์ ๊ธฐ ์ด๊ณณ์ ๊ณณ ํ์ํ์ (0) | 2021.07.18 |
[PS/๊ทธ๋ฆฌ๋/์ฝ๋์ ] 3120 : ๋ฆฌ๋ชจ์ปจ (0) | 2021.06.30 |
[PS/์ฝ๋์ ] 1097 : ๋ฐ๋์ ์ญ์ ๋ค์ง๊ธฐ (0) | 2021.06.29 |
์ฝํ ๋ฉ๋ชจ (1) | 2021.05.28 |