Published on

๐Ÿ› ๏ธ[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]-๋น„๋ฐ€์ง€๋„

๐Ÿ“–๋ฌธ์ œ ์„ค๋ช…


๋„ค์˜ค๋Š” ํ‰์†Œ ํ”„๋กœ๋„๊ฐ€ ๋น„์ƒ๊ธˆ์„ ์ˆจ๊ฒจ๋†“๋Š” ์žฅ์†Œ๋ฅผ ์•Œ๋ ค์ค„ ๋น„๋ฐ€์ง€๋„๋ฅผ ์†์— ๋„ฃ์—ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ด ๋น„๋ฐ€์ง€๋„๋Š” ์ˆซ์ž๋กœ ์•”ํ˜ธํ™”๋˜์–ด ์žˆ์–ด ์œ„์น˜๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•”ํ˜ธ๋ฅผ ํ•ด๋…ํ•ด์•ผ ํ•œ๋‹ค. ๋‹คํ–‰ํžˆ ์ง€๋„ ์•”ํ˜ธ๋ฅผ ํ•ด๋…ํ•  ๋ฐฉ๋ฒ•์„ ์ ์–ด๋†“์€ ๋ฉ”๋ชจ๋„ ํ•จ๊ป˜ ๋ฐœ๊ฒฌํ–ˆ๋‹ค.

์ง€๋„๋Š” ํ•œ ๋ณ€์˜ ๊ธธ์ด๊ฐ€ n์ธ ์ •์‚ฌ๊ฐํ˜• ๋ฐฐ์—ด ํ˜•ํƒœ๋กœ, ๊ฐ ์นธ์€ ๊ณต๋ฐฑ(" ) ๋˜๋Š”๋ฒฝ(#") ๋‘ ์ข…๋ฅ˜๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ์ „์ฒด ์ง€๋„๋Š” ๋‘ ์žฅ์˜ ์ง€๋„๋ฅผ ๊ฒน์ณ์„œ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. ๊ฐ๊ฐ ์ง€๋„ 1๊ณผ ์ง€๋„ 2๋ผ๊ณ  ํ•˜์ž. ์ง€๋„ 1 ๋˜๋Š” ์ง€๋„ 2 ์ค‘ ์–ด๋Š ํ•˜๋‚˜๋ผ๋„ ๋ฒฝ์ธ ๋ถ€๋ถ„์€ ์ „์ฒด ์ง€๋„์—์„œ๋„ ๋ฒฝ์ด๋‹ค. ์ง€๋„ 1๊ณผ ์ง€๋„ 2์—์„œ ๋ชจ๋‘ ๊ณต๋ฐฑ์ธ ๋ถ€๋ถ„์€ ์ „์ฒด ์ง€๋„์—์„œ๋„ ๊ณต๋ฐฑ์ด๋‹ค. ์ง€๋„ 1๊ณผ ์ง€๋„ 2๋Š” ๊ฐ๊ฐ ์ •์ˆ˜ ๋ฐฐ์—ด๋กœ ์•”ํ˜ธํ™”๋˜์–ด ์žˆ๋‹ค. ์•”ํ˜ธํ™”๋œ ๋ฐฐ์—ด์€ ์ง€๋„์˜ ๊ฐ ๊ฐ€๋กœ์ค„์—์„œ ๋ฒฝ ๋ถ€๋ถ„์„ 1, ๊ณต๋ฐฑ ๋ถ€๋ถ„์„ 0์œผ๋กœ ๋ถ€ํ˜ธํ™”ํ–ˆ์„ ๋•Œ ์–ป์–ด์ง€๋Š” ์ด์ง„์ˆ˜์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์˜ ๋ฐฐ์—ด์ด๋‹ค. secretmap

๋„ค์˜ค๊ฐ€ ํ”„๋กœ๋„์˜ ๋น„์ƒ๊ธˆ์„ ์†์— ๋„ฃ์„ ์ˆ˜ ์žˆ๋„๋ก, ๋น„๋ฐ€์ง€๋„์˜ ์•”ํ˜ธ๋ฅผ ํ•ด๋…ํ•˜๋Š” ์ž‘์—…์„ ๋„์™€์ค„ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋ผ.

์ž…๋ ฅ ํ˜•์‹

  • ์ž…๋ ฅ์œผ๋กœ ์ง€๋„์˜ ํ•œ ๋ณ€ ํฌ๊ธฐ nn ๊ณผ 2๊ฐœ์˜ ์ •์ˆ˜ ๋ฐฐ์—ด arr1,arr2arr1, arr2๊ฐ€ ๋“ค์–ด์˜จ๋‹ค.
  • 1โ‰ฆnโ‰ฆ161 โ‰ฆ n โ‰ฆ 16
  • arr1, arr2๋Š” ๊ธธ์ด n์ธ ์ •์ˆ˜ ๋ฐฐ์—ด๋กœ ์ฃผ์–ด์ง„๋‹ค.
  • ์ •์ˆ˜ ๋ฐฐ์—ด์˜ ๊ฐ ์›์†Œ xx๋ฅผ ์ด์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ–ˆ์„ ๋•Œ์˜ ๊ธธ์ด๋Š” nn ์ดํ•˜์ด๋‹ค. ์ฆ‰, 0โ‰ฆxโ‰ฆ2nโˆ’10 โ‰ฆ x โ‰ฆ 2n - 1์„ ๋งŒ์กฑํ•œ๋‹ค.

์ถœ๋ ฅ ํ˜•์‹

  • ์›๋ž˜์˜ ๋น„๋ฐ€์ง€๋„๋ฅผ ํ•ด๋…ํ•˜์—ฌ '#', ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ์„ฑ๋œ ๋ฌธ์ž์—ด ๋ฐฐ์—ด๋กœ ์ถœ๋ ฅํ•˜๋ผ.

โœ๏ธ๋ฌธ์ œ ํ’€์ด


  • C++ ์‚ฌ์šฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
    • <bitset> ์ด๋ž€?
      ๋น„ํŠธ(bit)๋ฅผ ์ €์žฅ, ์—ฐ์‚ฐํ•˜๊ณ  ๋‹ค๋ฃจ๋Š” ํด๋ž˜์Šค์ด๋‹ค. ๋ถ€์šธํ˜• ์›์†Œ๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐฐ์—ด์„ ์กฐ์ž‘ํ•œ๋‹ค. ๋ฐฐ์—ด์˜ ํ•œ ์ž๋ฆฌ๋‹น ํ• ๋‹น๋œ ๋‹จ์ผ ์›์†Œ๋“ค์˜ ๊ณต๊ฐ„ ํ• ๋‹น์— ํŠนํ™”๋˜์–ด์žˆ๋‹ค. ํ•ด๋‹น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•ด์„œ๋Š” ๋ณ„๋„์˜ ํฌ์ŠคํŠธ์—์„œ ์‹ฌ์ธต์ ์œผ๋กœ ๋‹ค๋ฃจ๊ฒ ๋‹ค.
  • Python ์‚ฌ์šฉ ํ•จ์ˆ˜

โŒจ๏ธํ’€์ด ์ฝ”๋“œ


  • C++ ์ฝ”๋“œ
#include <string>
#include <vector>
#include <bitset>

using namespace std;

vector<string> solution(int n, vector<int> arr1, vector<int> arr2) {
    vector<string> answer;

    string temp;
    string tempboard;
    int startpoint = 0;
    for (int i = 0; i < n; i++) {
        bitset<16> temp1 = arr1[i];
        bitset<16> temp2 = arr2[i];
        bitset<16> temp_bit = temp1 | temp2;

        temp = temp_bit.to_string();
        tempboard = "";
        startpoint = 16-n;
        for (int j = startpoint; j < 16; j++) {
            temp[j] == '1' ? tempboard += '#' : tempboard += " ";
        }
        answer.push_back(tempboard);
    }
    return answer;
}
  • Python ์ฝ”๋“œ
def solution(a, b):
    answer = 0
    for i in range(len(a)):
        answer += a[i] * b[i]
    return answer

์ถœ์ฒ˜ : ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2018 ์นด์นด์˜ค ๋น„๋ฐ€์ง€๋„ ๋ฌธ์ œ