Posts [알고리즘] 프로그래머스 - [1차] 비밀지도
Post
Cancel

[알고리즘] 프로그래머스 - [1차] 비밀지도


문제

[1차]비밀지도


접근

비트 연산을 이용하는 문제이다.
두 배열을 or 연산하면 정답이 나온다.
이를 2진수 기준으로 공백과 벽을 대입하면 된다.

코드

  • 파이썬 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
def solution(n, arr1, arr2):
    answer = []
    for i in range(n):
        a = arr1[i] | arr2[i]
        s = ''
        for j in range(n):
            if a%2 == 0:
                s = " "+s
            else:
                s = '#'+s
            a//=2
        answer.append(s)
    return answer
  • C++ 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <string>
#include <vector>
using namespace std;

vector<string> solution(int n, vector<int> arr1, vector<int> arr2) {
    vector<string> answer;
    string s = "";
    s.resize(n, ' ');
    for(int i = 0; i<n;i++){
        int a = arr1[i] | arr2[i];
        for(int j=n-1;j>=0;j--){
            if(a%2==0){
                s[j] = ' ';
            }
            else{
                s[j] = '#';
            }
            a /= 2;
        }
        answer.push_back(s);
    }
    return answer;
}


This post is licensed under CC BY 4.0 by the author.

[알고리즘] 프로그래머스 - 이상한 문자 만들기

[알고리즘] 프로그래머스 - 키패드 누르기