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
'알고리즘 > 프로그래머스' 카테고리의 다른 글
2018 KAKAO BLIND RECRUITMENT- 방금그곡, 파이썬 (0) | 2021.03.08 |
---|---|
2018 KAKAO BLIND RECRUITMENT[1차] 다트 게임 (0) | 2021.03.08 |
2018 KAKAO BLIND RECRUITMENT - 캐시, 파이썬 (0) | 2021.03.07 |
2018 카카오 블라인드 코딩테스트 - 셔틀버스, 파이썬 (0) | 2021.03.05 |
프로그래머스 2018 카카오 코딩테스트 - 프렌즈4블록, 파이썬 (0) | 2021.03.05 |