문제풀이
def solution(n, arr1, arr2):
cnt = 0
g = ''
answer = []
for a, b in zip(arr1, arr2):
arr1[cnt] = str(bin(a)[2:]).zfill(n)
arr2[cnt] = str(bin(b)[2:]).zfill(n)
cnt += 1
for i in range(n):
answer.append(g)
for i in range(n):
for j in range(n):
if arr1[i][j] == "1" or arr2[i][j] == "1":
answer[i] += "#"
else :
answer[i] += " "
return answer
다른사람 풀이
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
문제해석
- 핵심은 배열 2개를 활용할 줄아는가 출력 및 비교가 가능한가
- 1단계 : 2진수를 바꾸는데 5자리여야한다. -> 배열로 만든다
- 2단계 : 배열 2개를 비교해서 새로운 배열로 만든다.
- 다른사람 풀이
- bin 을 사용할때 한번에 두 수의 이진수를 구한 뒤 or연산자 한 결과를 나타내는 것 같네요.
- rjust를 통해 공백의 수, 공백을 메워줄 문자를 넣어줌
총정리
- 종이에 적고 단계별로 접근하니 쉬웠다.
- 하지만 모르는 zip 함수, 배열2개를 활용하는 방법, 빈배열을 만드는 게 필요한가? 리스트 추가(append, insert) 개념 부족하다.
'Programmers > 1단계' 카테고리의 다른 글
[2021 카카오채용 인턴십] 숫자 문자열과 영단어 (0) | 2022.10.13 |
---|---|
[2021 Dev-Matching: 웹 백엔드 개발] 로또의 최고 순위와 최저 순위 (2) | 2022.09.29 |
[PCCE 모의고사 1] 10번 (0) | 2022.09.20 |
[1단계] [심화] 크레인 인형 뽑기 게임 (0) | 2022.09.19 |
[1단계] [ 탐욕법 ] 체육복 (0) | 2022.05.18 |