그림을 보면 바로 보이는 분들도 계실것이다. 흰 빈칸과 #이 들어가 있는 칸을 각각 0과 1로 치환하여 만들어진 이진수를 10진수로 바꾸는데 그것을 각 행별로 arr에 담아서 주어진다. 그림에서 보여지듯, 빈칸과 빈칸이 만나면 빈칸이되고, 그렇지 않은 경우엔 #이되는것을 알 수 있다. 즉, 핵심은 arr1과 arr2에 주어진 각 행을 비트연산자 OR을 이용해 처리하면 되는것이다. 그후 다시 0과 1을 각각 빈칸과 #으로 치환시켜 반환해주면 된다.
def solution(n, arr1, arr2):
answer = []
for first, second in zip(arr1, arr2):
tmp = bin(first | second)[2:]
if len(tmp)<n:
tmp = '0'*(n-len(tmp))+tmp
tmp = tmp.replace('1', '#')
tmp = tmp.replace('0', " ")
answer.append(tmp)
return answer
'알고리즘 & 코딩테스트 > 코딩테스트' 카테고리의 다른 글
Programmers Lv.1 "문자열 내 마음대로 정렬하기" (0) | 2023.06.09 |
---|---|
Programmers Lv.1 "숫자 문자열과 영단어" (0) | 2023.06.08 |
Programmers Lv.1 "크기가 작은 부분문자열" (0) | 2023.06.07 |
Programmers Lv.1 "최소직사각형" (0) | 2023.06.01 |
Programmers Lv.1 "시저 암호" (0) | 2023.06.01 |