[프로그래머스] [1차] 비밀지도△



그동안 유니티 프로젝트를 만들다 보니 오랜만에 알고리즘 문제를 풀어보았다. 오랜만이라 처음엔 키워드도 잘 기억안나서 답답했지만 금방 다시 익숙해진 기분이다. 물론 지금 내가 문제를 푸는 방식은 문제를 풀긴 하지만 좋은 방법이 아니란 것은 알 수 있다. 그래서 제목에 △가 있는 것이다. 나중에라도 꼭 다시 풀어봐야겠다. 이번 문제는 어려운 부분이 없었다.

#include <string>
#include <vector>
#include <deque>
using namespace std;

deque<int> ChangeNum(int n) {
	deque<int> t_dq;
	while (n != 0) {
		int temp = n % 2;
		t_dq.push_front(temp);
		n = n / 2;
	}
	return t_dq;
}

vector<string> solution(int n, vector<int> arr1, vector<int> arr2) {
    string tempAnswer;
    vector<string> answer;
    deque<int> arr1_dq;
	deque<int> arr2_dq;
	deque<int> temp_dq;
    
    for (int i = 0; i < arr1.size(); i++) {

		arr1_dq = ChangeNum(arr1[i]);
		arr2_dq = ChangeNum(arr2[i]);

		if (arr1_dq.size() < n) {
			for (int i = arr1_dq.size(); i != n; i++) {
				arr1_dq.push_front(0);
			}
		}

		if (arr2_dq.size() < n) {
			for (int i = arr2_dq.size(); i != n; i++) {
				arr2_dq.push_front(0);
			}
		}
		
		for (int i = 0; i < arr2_dq.size(); i++) {
			temp_dq.push_back(arr1_dq[i] + arr2_dq[i]);
		}

		for (int i = 0; i < temp_dq.size(); i++) {
			if (temp_dq[i] == 0) {
				tempAnswer.append(" ");
			}
			else {
				tempAnswer.append("#");
			}
		}
		answer.push_back(tempAnswer);
		tempAnswer.clear();
		temp_dq.clear();
	}
    
    return answer;
}





© 2022. by KSC

Powered by sora