728x90
해결 코드
def solution(n, arr1, arr2):
result = []
for i in range(n):
result.append(arr1[i] | arr2[i])
answer = []
for r in result:
word = bin(r)[2:]
word = word.replace("1", "#")
word = word.replace("0", " ")
# 앞에 0 붙여주기
while True:
if len(word) == n:
break
word = " " + word
answer.append(word)
return answer
처음에 생각했던 아이디어
1. 이진수로 바꾼다
2.비트연산 중 OR연산자 돌리기
풀면서 실제로 했던 순서
1. 먼저 숫자를 더하기(배열에서 원래 더해야하는 것)
2. 이진수로 바꾸고 0bxxxxx 처럼 나와서 [2:]으로 슬라이싱해야한다
3. 1을 #로, 0을 ""으로 바꿔야 한다
4. 반복문을 돌면서 문자열 길이가 안맞는 부분을 앞에서부터 ""처리해주어야 한다
배운 것
다른 분의 풀이인데 'rjust'를 활용해 간단하게 앞에 숫자를 넣는 코드가 있다
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
주된 사용법은
string.rjust(length, character)
이렇게 길이와, 어떤 것을 넣을지를 적는 형태이다
문제
현황
기업 코테 기출을 풀면 뭔가 뿌듯함이 더 크다
'프로그래밍 > 알고리즘' 카테고리의 다른 글
백준 - 10610 30 파이썬 (0) | 2023.01.18 |
---|---|
백준 - 10162 전자레인지 파이썬 (1) | 2023.01.16 |
프로그래머스 - 최대공약수와 최소공배수 파이썬 + 독서 후기 (0) | 2023.01.11 |
프로그래머스 - 직사각형 별찍기 파이썬 + 독서후기 (0) | 2023.01.10 |
백준 - 영화감독 숌 1436 파이썬 (0) | 2023.01.09 |
댓글