코딩테스트/🕊️프로그래머스
LEVEL 1. [1차] 비밀지도
@soohh
2022. 9. 28. 11:36
🟪 나의 구현 스케치
bin(arr1[index] | arr2[index]) 를 이용해 두 수의 2진수 OR 연산을 진행하고 [2:]를 이용하여 0b를 제외한 0과 1로만 이루어진 문자열을 배열에 넣는다.
replace를 이용하여 1은 #으로 0은 공백으로 대체하여 문제의 출려과 같은 모습이 되게 한다. 하지만 001111은 1111로 배열에 들어있기 때문에 answer[index] = " "*(n-len(answer[index])) + answer[index]로 1111앞에 00을 붙여준다.
🟪 나의 구현 코드
def solution(n, arr1, arr2):
answer = [bin(arr1[index]|arr2[index])[2:] for index in range(n)]
for index in range(n):
if len(answer[index]) < n:
answer[index] = " "*(n-len(answer[index])) + answer[index]
answer[index] = answer[index].replace("1", "#")
answer[index] = answer[index].replace("0", " ")
return answer
🟪 다른 사람의 구현 코드
a12=a12.rjust(n,'0')를 이용하여 a12 문자열 길이가 n개가 될때까지 오른쪽부터 '0' 문자를 넣어준다.
덕분에 rjust, ljust에 대해 알게되었다.
def solution(n, arr1, arr2):
answer = []
for i,j in zip(arr1,arr2):
a12 = str(bin(i|j)[2:])
a12=a12.rjust(n,'0')
a12=a12.replace('1','#')
a12=a12.replace('0',' ')
answer.append(a12)
return answer
https://school.programmers.co.kr/learn/courses/30/lessons/17681