250x250
반응형
Notice
Recent Posts
Recent Comments
Link
N
(프로그래머스 c++ KAKAO)[1차]비밀지도 본문
728x90
반응형
문제의 핵심은 OR 연산을 이용하는 것..!
arr1과 arr2의 i번째에 있는 두 수를 or연산을 통해 arr1[i] 번째에 다시 저장한다.
이때 string형 tmp를 선언한다.
OR 연산을 통해 나온 결과를 이진법을 통해 해석해야 한다.
2로 나누었을 때 나머지가 0이면 ' '(공백)을 tmp에 넣어주고,
나머지가 1이면 '#'을 tmp에 넣어준다.
이때, tmp의 사이즈는 n이어야 한다..!
while문을 통해 n만큼 문자를 넣어주고,
answer에 넣기 전에 reverse를 통해 tmp를 뒤집어주었다.
(tmp에 거꾸로 들어가기 때문에 바로잡기 위해 reverse() 함수를 사용하였다..!)
이 문제에서 많이 틀리는 부분이 아마 해석한 결과의 길이와 n이 같지 않아서일 것 같다..!
n의 길이만큼 채워져야 하기 때문에 이 부분만 조심하면 쉽게 풀 수 있을 것이다..!
#include <string>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
vector<string> solution(int n, vector<int> arr1, vector<int> arr2) {
vector<string> answer;
for(int i = 0; i < n; i++)
{
string tmp = "";
arr1[i] = arr1[i] | arr2[i];
while(tmp.size() != n)
{
if(arr1[i] % 2 == 0)
tmp.push_back(' ');
else
tmp.push_back('#');
arr1[i] /= 2;
}
reverse(tmp.begin(), tmp.end());
answer.push_back(tmp);
}
return answer;
}
728x90
반응형
'프로그래머스 알고리즘 > KAKAO' 카테고리의 다른 글
(프로그래머스 c++ KAKAO)카카오 프렌즈 컬러링북 (3) | 2020.05.08 |
---|---|
(프로그래머스 c++ KAKAO)문자열 압축 (0) | 2020.05.06 |
(프로그래머스 c++ KAKAO)다트 게임 (0) | 2020.05.01 |
(프로그래머스 c++ KAKAO)실패율 (0) | 2020.04.30 |
(프로그래머스 c++ KAKAO) 1단계- 크레인 인형뽑기 (1) | 2020.04.14 |