Algorithm/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

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

meeeeejin 2021. 1. 10. 17:26

๋ฌธ์ œ๋งํฌ: programmers.co.kr/learn/courses/30/lessons/42862

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ฒด์œก๋ณต

์ ์‹ฌ์‹œ๊ฐ„์— ๋„๋‘‘์ด ๋“ค์–ด, ์ผ๋ถ€ ํ•™์ƒ์ด ์ฒด์œก๋ณต์„ ๋„๋‚œ๋‹นํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹คํ–‰ํžˆ ์—ฌ๋ฒŒ ์ฒด์œก๋ณต์ด ์žˆ๋Š” ํ•™์ƒ์ด ์ด๋“ค์—๊ฒŒ ์ฒด์œก๋ณต์„ ๋นŒ๋ ค์ฃผ๋ ค ํ•ฉ๋‹ˆ๋‹ค. ํ•™์ƒ๋“ค์˜ ๋ฒˆํ˜ธ๋Š” ์ฒด๊ฒฉ ์ˆœ์œผ๋กœ ๋งค๊ฒจ์ ธ ์žˆ์–ด, ๋ฐ”๋กœ ์•ž๋ฒˆ

programmers.co.kr

 

ํ’€์ด

 

ํ•™์ƒ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ฒด์œก๋ณต์˜ ์ˆ˜๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฐ์—ด student๋ฅผ ๋งŒ๋“ค๊ณ , ์ฒด์œก๋ณต์„ ์žƒ์–ด๋ฒ„๋ฆฐ ํ•™์ƒ์€ -1, ์—ฌ๋ถ„์˜ ์ฒด์œก๋ณต์ด ์žˆ๋Š” ํ•™์ƒ์€ 1์„ ๋”ํ•ด์ค๋‹ˆ๋‹ค. 1๋ฒˆ๋ถ€ํ„ฐ n๋ฒˆ ํ•™์ƒ ์ค‘์—์„œ ์ฒด์œก๋ณต์ด ์—†๋Š” ํ•™์ƒ์˜ ๊ฒฝ์šฐ ๋จผ์ € ๋ฐ”๋กœ ์•ž์— ํ•™์ƒ(student[i - 1])์—๊ฒŒ ์ฒด์œก๋ณต์„ ๋นŒ๋ฆด ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ฒด์œก๋ณต์„ ๋นŒ๋ฆด ์ˆ˜ ์—†๋‹ค๋ฉด ๋’ค์— ํ•™์ƒ(student[i + 1])์—๊ฒŒ ๋นŒ๋ฆด ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. 

 

์ตœ์ข…์ ์œผ๋กœ student ๋ฐฐ์—ด์— -1์ด ์ €์žฅ๋œ ํ•™์ƒ์€ ์ฒด์œก์ˆ˜์—…์— ์ฐธ๊ฐ€ํ•˜์ง€ ๋ชปํ•˜๋ฏ€๋กœ answer์—์„œ ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค. 

 

์ด๋•Œ, ํ•™์ƒ ๋ฒˆํ˜ธ๋ฅผ ๊ทธ๋Œ€๋กœ ๋ฐฐ์—ด์˜ index๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์— ์ฃผ์˜ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ 5๋ช…์˜ ํ•™์ƒ์ด ์žˆ๋‹ค๋ฉด ๊ฐ ํ•™์ƒ์˜ ์ฒด์œก๋ณต ๊ฐœ์ˆ˜๋Š” student[1], student[2], student[3], student[4], student[5]์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. student[i - 1]๊ณผ student[i + 1]์— ์ ‘๊ทผํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋Š” ์ตœ๋Œ€ ํ•™์ƒ ์ˆ˜์—์„œ 2 ์ด์ƒ ํฌ๊ฒŒ ์žก์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. 

 

 

 

์†Œ์Šค์ฝ”๋“œ

 

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
#include <string>
#include <vector>
 
using namespace std;
int student[33];
int solution(int n, vector<int> lost, vector<int> reserve) {
    int answer = 0;
    
    for(int i: lost) student[i] -= 1;
    for(int i: reserve) student[i] += 1;
 
    for(int i = 1; i <= n; i++) {
        if(student[i] == -1) {
            if(student[i - 1== 1) {
                student[i] = student[i - 1= 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;
}
cs

 

ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ

 

 

 

 

๊ณต๋ถ€ํ•œ ๊ฒƒ์„ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ์ˆ˜์ •ํ•  ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด ์•Œ๋ ค์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค :)

 

 

 

728x90