코딩테스트 연습 - [1차] 비밀지도 | 프로그래머스 스쿨 (programmers.co.kr)
* cpp
1.ret.push(arr1 or arr2)
2.IntToBin(ret)
3.n칸만큼 앞에 0채우기
4.1->#, 0->공백으로 answer에 push_back
#include <bits/stdc++.h>
using namespace std;
int N;
vector<int> v1, v2;
//v(크기,대상)
//vector<vector<int>> ret(16,vector<int>(16,0));
vector<int> ret;
vector<string> answer;
void opOr(){
for(int i=0;i<v1.size();++i){
ret.push_back(v1[i]|v2[i]);
}
//for(auto i: ret) cout<<i<<" ";
}
vector<int> toBin(int n){
vector<int> ret;
while(n>=1){
ret.push_back(n%2);
n=n/2;
}
//ret.push_back(n);
while(ret.size()<N){
ret.push_back(0);
}
reverse(ret.begin(),ret.end());
for(auto i:ret) cout<<i<<" ";
return ret;
}
vector<string> solution(int n, vector<int> arr1, vector<int> arr2) {
v1=arr1; v2=arr2; N=n;
opOr();
//toBin(9);
for(auto i:ret){
vector<int> temp=toBin(i); //0 1 0 0 1
string s="";
for(auto j:temp){
if(j==1){
s=s+"#";
}
else if(j==0){
s=s+" ";
}
}
answer.push_back(s);
}
return answer;
}
* python
- bin(31) //31을 0b11111으로 바꿔준다
- list[2:] //앞의 0,1 인덱스버린다 == 2번째부터만 리턴
- list.zfill(5) //5칸만큼 빈칸에 0채운거 리턴
- list.replace('1','#') //리스트의 1을 #으로 대체한거리턴, 연쇄사용가능
-list.append // cpp의 push_back과 유사
def solution(n, arr1, arr2):
answer = []
for i in range(n): #i=0~n-1까지
temp=(arr1[i] | arr2[i]) #temp=9or30 == 31
binary=bin(temp) #0b11111
print(binary)
binary=binary[2:]
print(binary) #11111
binary=binary.zfill(n) #zfill(칸수) : n칸만큼 앞에0으로 메꿔준다.
binary=binary.replace('1','#').replace('0',' ')
print(binary)
answer.append(binary) #push_back cpp == append py
return answer
'Algorithm > programmers' 카테고리의 다른 글
프로그래머스 다트게임 python // 문자열파싱 정규식 (0) | 2023.07.12 |
---|---|
프로그래머스 캐시 Python cpp //LRU구현 ,tolower (0) | 2023.07.11 |
프로그래머스 이모티콘할인행사 // 중복순열, vector<pair<int,int>>정렬방법 (0) | 2023.06.28 |
프로그래머스 개인정보 수집 유효기간 // c++ split, 단위를통일하라, 함수화하고 cout으로 단위테스트하라. (0) | 2023.06.28 |
프로그래머스 거리두기체크하기 // 2차원벡터다루기 형식, 종이에그려보며 규칙세우기 , 2차원배열 초기화방법 (0) | 2023.06.24 |