문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/17681
문제 풀이)
나는 십진법으로 된 숫자를 이진법으로 변환후 하나씩 비교를 하면서 맞으면 # 틀리면 ' '공백을 추가하도록 했지만 다른사람의 풀이를 보니 비트 OR 연산으로 한번에 끝낼수 있는 간단한 문제였다.
다음번엔 비트연산자 써서 풀어보기!
def solution(n, arr1, arr2):
def decode_query(num):
temp = bin(num)
binary = temp[2:]
if len(binary) < n:
return '0' * (n - len(binary)) + binary
return binary
answer = []
arr1 = list(map(decode_query, arr1))
arr2 = list(map(decode_query, arr2))
for i in range(n):
decode_arr1, decode_arr2 = list(arr1[i]), list(arr2[i])
temp = ""
for j in range(n):
if decode_arr1[j] == '1' or decode_arr2[j] == '1':
temp += '#'
else:
temp += ' '
answer.append(temp)
return answer
'Algorithm' 카테고리의 다른 글
[프로그래머스 - lv1, 2023 KAKAO BLIND RECRUITMENT] 개인정보 수집 유효기간 파이썬 (0) | 2023.03.07 |
---|---|
[프로그래머스 - lv1] 기사단원의 무기 파이썬 (4) | 2023.03.06 |
[프로그래머스 - lv1, 2020 카카오 인턴십] 키패드 누르기 (0) | 2023.02.27 |
[프로그래머스 - lv3] 부대복귀 (0) | 2023.02.23 |
[프로그래머스-lv2] 우박수열의 정적분 (0) | 2023.02.23 |