프로그래머스 코딩테스트 고득점 Kit의 문제입니다.
https://programmers.co.kr/learn/challenges?tab=algorithm_practice_kit
문제
https://programmers.co.kr/learn/courses/30/lessons/17681
내가 작성한 코드
def solution(n, arr1, arr2):
answer = []
for a, b in zip(arr1, arr2):
v = a | b
crnt = []
for _ in range(n):
v, b = divmod(v, 2)
if b == 1:
crnt.append('#')
else:
crnt.append(' ')
answer.append(''.join(crnt[::-1]))
return answer
- 비트연산
- 두 수의 이진수에 대해 하나의 지도에만 1이 있어도 1로 취급하므로 OR
- 이진수를 만들기 위해 2로 거듭나눔
- 나머지에 따라 0 또는 1이므로, 이에 맞는 '#'과 ' ' 대입
- 결과가 뒤집어져 나오므로 crnt[::-1]
다른 사람이 작성한 코드
None
기억해야할 것
- 만약 음수가 포함되었다면?
- 나누기로 접근하기 어려우니 mask를 사용해서 n자리수마다 판별하면 될 듯하다
'코딩테스트' 카테고리의 다른 글
[프로그래머스][KAKAO_BLIND][2019] 길 찾기 게임 (0) | 2021.09.02 |
---|---|
[프로그래머스][KAKAO_BLIND][2021] 신규 아이디 추천 (0) | 2021.09.02 |
[프로그래머스][KAKAO_BLIND][2019] 무지의 먹방 라이브 (0) | 2021.09.01 |
[프로그래머스][KAKAO_BLIND][2020] 블록 이동하기 (0) | 2021.09.01 |
[프로그래머스][KAKAO_BLIND][2018] 캐시 (0) | 2021.09.01 |