콘솔창 & 윈도우창/코딩 테스트

프로그래머스 - LV.1 [1차] 비밀지도

게임 개발 2024. 8. 15. 12:19

 

내가 제출 한 것

vector<string> solution(int n, vector<int> arr1, vector<int> arr2) 
{
    vector<string> answer;
    for (int i = 0; i < n; i++)
    {
        string str = "";
        for(int j = 0; j < n; j++)
        {
            if (arr1[i] % 2 == 1 || arr2[i] % 2 == 1)
                str += "#";

            else
                str += " ";

            arr1[i] /= 2;
            arr2[i] /= 2;
        }
        reverse(str.begin(), str.end());
        answer.push_back(str);
    }
    return answer;
}

 

 

다 푼 뒤 다른 사람 제출지 보고 배운 코드

vector<string> solution(int n, vector<int> arr1, vector<int> arr2) 
{
    vector<string> answer;
    for (int i = 0; i < n; i++)
    {
        arr1[i] = arr1[i] | arr2[i];
        string ans = "";
        for (int j = 0; j < n; j++)
        {
            if (arr1[i] % 2 == 0) ans = " " + ans;
            else ans = "#" + ans;
            arr1[i] = arr1[i] >> 1;
            cout << arr1[i] << endl;
        }
        answer.push_back(ans);
    }
    return answer;
}

int main(void)
{
    int n = 5;
    vector<int> arr1 = { 9, 20, 28, 18, 11 };
    vector<int> arr2 = { 30, 1, 21, 17, 28 };

    solution(n, arr1, arr2);

    return 0;
}