https://programmers.co.kr/learn/courses/30/lessons/17681
코딩테스트 연습 - [1차] 비밀지도
비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다
programmers.co.kr
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#include <string>
#include <vector>
using namespace std;
vector<string> solution(int n, vector<int> arr1, vector<int> arr2) {
vector<string> answer;
for (int i = 0; i < n; i++)
{
//arr1 과 arr2를 OR 연산자로 비교하여 , 완성된 지도를 얻는다.
int compare = arr1[i] | arr2[i];
string s = "";
for (int j = n - 1; j >= 0; j--)
{
//1을 왼쪽으로 j번 이동해서 비교한다(시프트연산). AND 연산자로 비교한다.
if (compare & (1 << j))s += "#"; //1이 있을 경우 s 에 #을 추가한다.
else s += " "; //0일 경우 s에 공백을 추가한다.
}
answer.push_back(s); //모든 열을 검사한 후 해당 문자열 s를 answer에 푸쉬한다.
}//이 과정을 n번 반복한다.
return answer;
}
|
참고글 https://greenapple16.tistory.com/97
[프로그래머스] 비밀지도
2018 KAKAO BLIND RECRUITMENT 1차 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/17681 코딩테스트 연습 - [1차] 비밀지도 | 프로그래머스 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장..
greenapple16.tistory.com
비트 연산을 개념만 알고 있었지 실제로 써본 적은 없었는데,
위의 글을 참고하면서 사용해보니 확실히 이해된 것 같다.
'프로그래머스 - 내 풀이 > 프로그래머스 Lv1' 카테고리의 다른 글
프로그래머스 / 2018 KAKAO BLIND RECRUITMENT[1차] / 다트 게임 (0) | 2020.06.02 |
---|---|
프로그래머스 / 2019 KAKAO BLIND RECRUITMENT / 실패율 (0) | 2020.06.01 |
프로그래머스 / 연습문제 / 예산 (1) | 2020.05.26 |
프로그래머스 / 연습문제 / 직사각형 별찍기 (0) | 2020.05.25 |
프로그래머스 / 연습문제 / x만큼 간격이 있는 n개의 숫자 (0) | 2020.05.22 |