728x90
반응형
문제 : [1차] 비밀지도
풀이 방법
지도 두개를 겹치면 나오는 결과로 비밀지도를 풀어야 하는 컨셉의 문제이다.
지도 각 칸이 둘중 한 곳이라도 1이면 완성된 지도에서 1이 된다고 하는데 OR연산이 딱 맞다.
| 연산을 해서 int temp에 넣고 그것을 2진법으로 만든 다음 string str에 1이면 #을 넣고 0이면 공백을 넣으면 된다.
2진법을 계산한 결과를 거꾸로 만들어야해서 stack을 써봤다 stack의 넣은 순서 반대로 나와야 하는 성질을 이용했다.
소스 코드
#include <string>
#include <vector>
#include <stack>
using namespace std;
vector<string> solution(int n, vector<int> arr1, vector<int> arr2) {
vector<string> answer;
stack<char> s_str;
for(int i=0; i<arr1.size(); i++) {
int temp = arr1[i] | arr2[i];
for(int u=0; u<n; u++) {
if(temp % 2 == 1) {
s_str.push('#');
}
else {
s_str.push(' ');
}
temp /= 2;
}
answer.push_back("");
while(!s_str.empty()){
answer[i].push_back(s_str.top());
s_str.pop();
}
}
return answer;
}
728x90
반응형
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 Level 1, C++] [1차] 다트 게임 (0) | 2022.07.06 |
---|---|
[프로그래머스 Level 1, C++] 로또의 최고 순위와 최저 순위 (0) | 2022.07.06 |
[프로그래머스 Level 1, C++] 내적 (0) | 2022.07.05 |
[프로그래머스 Level 1, C++] 같은 숫자는 싫어 (0) | 2022.07.05 |
[프로그래머스 Level 1, C++] 정수 제곱근 판별 (0) | 2022.07.05 |