알고리즘/프로그래머스
2018 KAKAO BLIND RECRUITMENT- 비밀지도, 파이썬
그레고리력
2021. 3. 7. 20:05
1. 문제
- 링크
2. 풀이 및 개선
- 이것 역시 쉬운 문제인데 졸릴 때 풀어서 거의 어거지로 풀었다.
- 비트마스크를 이용해서 풀면 간편하다.
- replace 등을 활용하여 더욱 간단하게 표현 가능하다.
3. 코드
- 1차 대충짠 코드
def solution(n, arr1, arr2):
answer = []
for i in range(n) :
a, b, = bin(max(arr1[i], arr2[i]))[2:] , bin(min(arr1[i], arr2[i]))[2:]
left = '' + ' ' * (n - len(a))
for k in range(len(a) - len(b)) :
if a[k] == '1' :
left += '#'
else :
left += ' '
right = ''
for j in range(1, len(b) + 1) :
if a[-j] == '1' or b[-j] == '1' :
right = '#' + right
else :
right = ' ' + right
answer.append(left + right)
return answer
- 개선된 코드
def solution(n, arr1, arr2):
answer = []
for i in range(n) :
s = bin(arr1[i]|arr2[i])[2:]
string = ' ' * (n - len(s))
for j in range(len(s)) :
if s[j] == '1' :
string += '#'
else :
string += ' '
answer.append(string)
return answer