glowing713
Frontend-Deep-Dive
glowing713
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (97)
    • Languages (11)
      • JavaScript ๐Ÿ’› (3)
      • Python ๐Ÿ (4)
      • Java โ˜•๏ธ (3)
      • Swift ๐Ÿงก (1)
    • Computer_Science (1)
      • Computer_Network ๐Ÿ•ธ (1)
    • Web_Frontend (4)
      • Vue.js (1)
    • Problem_Solving (76)
    • Server (1)
      • Spring ๐Ÿ€ (1)
    • AI (2)
      • NLP ๐Ÿ—ฃ (1)
      • AI_Math โž— (1)
    • ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊พธ๋ฏธ๊ธฐ โœŒ (1)
    • ์ƒ๊ฐ์ •๋ฆฌ โœ๐Ÿป (1)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ๐Ÿง‘๐Ÿปโ€๐Ÿ’ปGithub

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

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • Stack
  • Java
  • BOJ
  • DP
  • Python
  • ๋™์ ๊ณ„ํš๋ฒ•
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
  • ์™„์ „ํƒ์ƒ‰
  • Baekjoon
  • c++
  • bfs
  • 2019 ์นด์นด์˜ค ๊ฐœ๋ฐœ์ž ๊ฒจ์šธ ์ธํ„ด์‹ญ
  • binary search
  • ps
  • ์ด๋ถ„ํƒ์ƒ‰
  • mst
  • boostcampaitech
  • brute-force
  • ์นด์นด์˜ค ๊ธฐ์ถœ
  • Algorithm

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
glowing713

Frontend-Deep-Dive

[2019 ์นด์นด์˜ค ๊ฐœ๋ฐœ์ž ๊ฒจ์šธ ์ธํ„ด์‹ญ] ๋ถˆ๋Ÿ‰ ์‚ฌ์šฉ์ž
Problem_Solving

[2019 ์นด์นด์˜ค ๊ฐœ๋ฐœ์ž ๊ฒจ์šธ ์ธํ„ด์‹ญ] ๋ถˆ๋Ÿ‰ ์‚ฌ์šฉ์ž

2020. 5. 1. 23:36

์ด๋ฏธ์ง€๋ฅผ ํด๋ฆญํ•˜๋ฉด ๋ฌธ์ œ ์‚ฌ์ดํŠธ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.


 

 

๐Ÿ’ฃ ๋ฌธ์ œ ์ดํ•ด

 

 

์ด๋ฒคํŠธ ์‘๋ชจ์ž ์•„์ด๋”” ๋ชฉ๋ก์ด ๋‹ด๊ธด ๋ฐฐ์—ด user_id์™€

 

๋ถˆ๋Ÿ‰ ์‚ฌ์šฉ์ž ์•„์ด๋”” ๋ชฉ๋ก์ด ๋‹ด๊ธด ๋ฐฐ์—ด banned_id๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ,

 

๋‹น์ฒจ์—์„œ ์ œ์™ธ๋˜์–ด์•ผ ํ•  ์ œ์žฌ ์•„์ด๋”” ๋ชฉ๋ก์€ ๋ช‡ ๊ฐ€์ง€ ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ๊ฐ€๋Šฅํ•œ ์ง€ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์•ผ ํ•œ๋‹ค.

 

 

 

๐Ÿ’ญ ํ’€์ด ๊ณผ์ •

 

 

๋จผ์ € banned_id ์™€ ๊ธธ์ด๊ฐ€ ๋™์ผํ•œ user_id ๋ฅผ ์ฐพ๊ณ ,

 

* ๋ฌธ์ž๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ๋ฌธ์ž๊ฐ€ ๋™์ผํ•˜๋‹ค๋ฉด ๊ฐ™์€ ์•„์ด๋””๋ผ๊ณ  ๊ฐ€์ •ํ•˜๊ณ , ๊ทธ ์•„์ด๋””์˜ ์ธ๋ฑ์Šค๋ฅผ ์ €์žฅํ•œ๋‹ค.

 

๊ฐ banned_id ๋ณ„๋กœ ๊ฐ€๋Šฅํ•œ user_id ํ›„๋ณด๊ฐ€ ํ•œ ๊ฐœ ์ด์ƒ์ด๋ฏ€๋กœ, ๋ชจ๋“  ์กฐํ•ฉ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

๋™์ผํ•œ ์กฐํ•ฉ์˜ ์ค‘๋ณต์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ๊ณฑํ•˜๋ฉด ๋˜์ง€๋งŒ, ์ค‘๋ณต์„ ํ—ˆ๋ฝํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ฒดํฌํ•ด์ค˜์•ผ ํ•œ๋‹ค.

 

๋ฐฉ๋ฒ•์„ ๊ณ ๋ฏผํ•˜๋‹ค, ๋‹ค๋ฅธ ํ’€์ด๋ฅผ ์ฐพ์•„๋ณด๋ฉฐ ๋น„ํŠธ๋งˆ์Šคํฌ ๋ฐฉ์‹์œผ๋กœ ์ค‘๋ณต์„ ์ œ์™ธํ•œ ๊ฐ€์ง“์ˆ˜๋ฅผ ์ฒดํฌํ–ˆ๋‹ค.

 

 

 

์ž‘์„ฑ ์–ธ์–ด: C++

 

#include <iostream>
#include <vector>

using namespace std;

bool isVisited[1 << 8];

void bitMask(int index, int bnArrSize, int bitmask, vector<vector<int>> &vec) {
    if (index == bnArrSize) {
        isVisited[bitmask] = true;
        return;
    }
    
    for (auto num:vec[index]) {
        if (bitmask & (1 << num))   continue;   // ์ด๋ฏธ ํ‘œ์‹œํ•œ ์•„์ด๋””์ธ ๊ฒฝ์šฐ ํŒจ์Šค
        bitMask(index + 1, bnArrSize, bitmask | (1 << num), vec);
    }
}


int solution(vector<string> user_id, vector<string> banned_id) {
    vector<vector<int>> eq_Index(banned_id.size());
    int answer = 0, check = 1;
    
    /*************************** ๋ถˆ๋Ÿ‰ ์•„์ด๋””๋ณ„๋กœ ์ผ์น˜ํ•˜๋Š” ์•„์ด๋”” ์ธ๋ฑ์Šค ์ €์žฅ ***************************/
    
    for (int i = 0; i < banned_id.size(); ++i) {
        
        int bidLength = banned_id[i].length();    // ๋ถˆ๋Ÿ‰ ์‚ฌ์šฉ์ž ์•„์ด๋”” ๊ธธ์ด
        
        for (int j = 0; j < user_id.size(); ++j) {
            int uidLength = user_id[j].length();  // ์‚ฌ์šฉ์ž ์•„์ด๋”” ๊ธธ์ด
            check = 1;
            
            if (uidLength != bidLength) {   // ์•„์ด๋”” ๊ธธ์ด๊ฐ€ ๊ฐ™์ง€ ์•Š์œผ๋ฉด ํŒจ์Šค
                check = -1;
                continue;
            }else {                     // ์•„์ด๋”” ๊ธธ์ด๊ฐ€ ๊ฐ™๋‹ค๋ฉด ๋ฌธ์ž ๋น„๊ต
                for (int k = 0; k < bidLength; ++k) {
                    if (banned_id[i][k] == '*') {   // *๋ฌธ์ž๋Š” ๋น„๊ต ํŒจ์Šค
                        continue;
                    }else {
                        if (banned_id[i][k] != user_id[j][k]) { // ๋ฌธ์ž๊ฐ€ ๋‹ค๋ฅด๋‹ค๋ฉด check๋ฅผ -1๋กœ ํ•˜๊ณ  ๋ฌธ์ž ๋น„๊ต ์ข…๋ฃŒ
                            check = -1;
                            break;
                        }
                    }
                }
            }
            
            if (check == 1) {   // ๋‘ ์•„์ด๋””๊ฐ€ ๊ฐ™๋‹ค๊ณ  ํŒ๋‹จํ•œ ๊ฒฝ์šฐ
                cout << "banned_id: " << banned_id[i] << "user_id: " << user_id[j] << '\n';
                eq_Index[i].push_back(j);
            }
            
        }
        
    }
    
    
    /*************************** ๋น„ํŠธ๋งˆ์Šคํฌ๋กœ ์กด์žฌํ•˜๋Š” ํ›„๋ณด๊ตฐ ์กฐ์‚ฌ ***************************/
    
    bitMask(0, banned_id.size(), 0, eq_Index);
    
    for (bool temp:isVisited) {
        if (temp == true)   answer++;
    }
    
    return answer;
}

 

 

 

๐Ÿ† ๋ฐฐ์šด ์ 

 

 

๋น„ํŠธ๋งˆ์Šคํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ ์ฝ”๋“œ๋„ ๊ฐ„๊ฒฐํ•˜๊ณ , ์งง์€ ์ˆ˜ํ–‰์‹œ๊ฐ„์œผ๋กœ ์—ฐ์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์„ ๊ฒฝํ—˜ํ–ˆ๋‹ค.

 

์ด์ „์— ์ฑ…(์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ•ด๊ฒฐ ์ „๋žต)์œผ๋กœ ๋น„ํŠธ๋งˆ์Šคํฌ๋ฅผ ์ ‘ํ•œ ์ ์ด ์žˆ๋Š”๋ฐ,

 

์‹ค์ œ ๋ฌธ์ œ๋กœ ํ’€์ดํ•˜๋ฉฐ ์ดํ•ดํ•˜๊ณ  ๋‹ค์‹œ ์ด๋ก ์„ ๋’ค์ ์—ฌ๋ณด๋‹ˆ ํ›จ์”ฌ ์ดํ•ด๊ฐ€ ์ž˜๋œ๋‹ค.

 

์—ญ์‹œ ๋ฌธ์ œํ’€์ด ๋‹ค๋‹ค์ต์„  ์ธ๋“ฏ๐Ÿ˜Ž

์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Problem_Solving' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[BOJ] ๋ฐฑ์ค€ 1918 ํ›„์œ„ ํ‘œ๊ธฐ์‹ / ์Šคํƒ(Stack)  (0) 2020.07.18
[BOJ] ๋ฐฑ์ค€ 10828 ์Šคํƒ / ์Šคํƒ(Stack)  (0) 2020.07.17
[2019 ์นด์นด์˜ค ๊ฐœ๋ฐœ์ž ๊ฒจ์šธ ์ธํ„ด์‹ญ] ํŠœํ”Œ  (0) 2020.05.01
[2019 ์นด์นด์˜ค ๊ฐœ๋ฐœ์ž ๊ฒจ์šธ ์ธํ„ด์‹ญ] ํฌ๋ ˆ์ธ ์ธํ˜•๋ฝ‘๊ธฐ ๊ฒŒ์ž„  (0) 2020.05.01
[BOJ] ๋ฐฑ์ค€ 11055 ๊ฐ€์žฅ ํฐ ์ฆ๊ฐ€ ๋ถ€๋ถ„ ์ˆ˜์—ด / ๋™์  ๊ณ„ํš๋ฒ•(Dynamic-Programming)  (0) 2020.04.27
    'Problem_Solving' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [BOJ] ๋ฐฑ์ค€ 1918 ํ›„์œ„ ํ‘œ๊ธฐ์‹ / ์Šคํƒ(Stack)
    • [BOJ] ๋ฐฑ์ค€ 10828 ์Šคํƒ / ์Šคํƒ(Stack)
    • [2019 ์นด์นด์˜ค ๊ฐœ๋ฐœ์ž ๊ฒจ์šธ ์ธํ„ด์‹ญ] ํŠœํ”Œ
    • [2019 ์นด์นด์˜ค ๊ฐœ๋ฐœ์ž ๊ฒจ์šธ ์ธํ„ด์‹ญ] ํฌ๋ ˆ์ธ ์ธํ˜•๋ฝ‘๊ธฐ ๊ฒŒ์ž„
    glowing713
    glowing713

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