[PS/๊ทธ๋ฆฌ๋””/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ฒด์œก๋ณต

2021. 7. 2. 06:41ยทlearnings/PS

๋ฌธ์ œ ์„ค๋ช…

์ ์‹ฌ์‹œ๊ฐ„์— ๋„๋‘‘์ด ๋“ค์–ด, ์ผ๋ถ€ ํ•™์ƒ์ด ์ฒด์œก๋ณต์„ ๋„๋‚œ๋‹นํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹คํ–‰ํžˆ ์—ฌ๋ฒŒ ์ฒด์œก๋ณต์ด ์žˆ๋Š” ํ•™์ƒ์ด ์ด๋“ค์—๊ฒŒ ์ฒด์œก๋ณต์„ ๋นŒ๋ ค์ฃผ๋ ค ํ•ฉ๋‹ˆ๋‹ค. ํ•™์ƒ๋“ค์˜ ๋ฒˆํ˜ธ๋Š” ์ฒด๊ฒฉ ์ˆœ์œผ๋กœ ๋งค๊ฒจ์ ธ ์žˆ์–ด, ๋ฐ”๋กœ ์•ž๋ฒˆํ˜ธ์˜ ํ•™์ƒ์ด๋‚˜ ๋ฐ”๋กœ ๋’ท๋ฒˆํ˜ธ์˜ ํ•™์ƒ์—๊ฒŒ๋งŒ ์ฒด์œก๋ณต์„ ๋นŒ๋ ค์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 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;
}

good.


๋ญ๊ฐ€ ๋‹ค๋ฅธ๊ฑด์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์•„๋งˆ 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
'learnings/PS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [PS/ํƒ์ƒ‰/BFS/DFS] ์—ฌ๊ธฐ์ €๊ธฐ ์ด๊ณณ์ €๊ณณ ํƒ์ƒ‰ํƒ์ƒ‰ 2
  • [PS/ํƒ์ƒ‰/BFS/DFS] ์—ฌ๊ธฐ์ €๊ธฐ ์ด๊ณณ์ €๊ณณ ํƒ์ƒ‰ํƒ์ƒ‰
  • [PS/๊ทธ๋ฆฌ๋””/์ฝ”๋“œ์—…] 3120 : ๋ฆฌ๋ชจ์ปจ
  • [PS/์ฝ”๋“œ์—…] 1097 : ๋ฐ”๋‘‘์•Œ ์‹ญ์ž ๋’ค์ง‘๊ธฐ
Une.
Une.
์ด์ง„์„ธ์ƒ์† ์ž์œ ๋ฅผ ์ฐพ๋Š” ์‚ฌ๋žŒ์ด ๋‚จ๊ธด ๊ธฐ๋ก
  • Une.
    Une's Dev-log๐Ÿ
    Une.
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • \ (36)
      • log (4)
      • mac (2)
      • learnings (29)
        • ํšŒ๊ณ  (0)
        • Swift (11)
        • PS (10)
        • Algorithm&DS (6)
        • c++ (2)
      • CS (1)
        • ๋„คํŠธ์›Œํฌ (1)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ๋ฐฉ๋ช…๋ก
    • ๊ด€๋ฆฌ์ž
    • ๊ธ€์“ฐ๊ธฐ
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    C++
    ๊ฐ•ํ•œ์ฐธ์กฐ
    ํ™˜ํ˜•๋งํฌ๋“œ๋ฆฌ์ŠคํŠธ
    ์Šคํƒ
    BFS
    ์ฝ”๋“œ์—…
    ํ† ์ดํ”„๋กœ์ ํŠธ
    ๋”๋ธ”๋ฆฌ๋งํฌ๋“œ๋ฆฌ์ŠคํŠธ
    ios
    wwdc25
    ๊ทธ๋ฆฌ๋””
    PS
    ์ž๋ฃŒ๊ตฌ์กฐ
    ๋ฐฑ์ค€
    swift 6.2
    ์ฐจ๋Ÿ‰๊ธฐ์ง€์•Œ๊ณ ๋ฆฌ์ฆ˜
    ๋งฅ
    swift
    DFS
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
Une.
[PS/๊ทธ๋ฆฌ๋””/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ฒด์œก๋ณต
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”