문제
알고리즘
- 두 개의 지도의 10진수를 2진수 n자리로 변환한다.
- 반복문을 통해 지도의 각 자리를 비교한다.
- 비교 과정에서 각 자리의 수를 더하고, 0보다 크다면 그 자리는 벽이 되고 0이라면 그 자리는 공백이 된다.
- 지도의 모든 자리를 확인 후 해독한 암호 지도를 리턴한다.
코드
def solution(n, arr1, arr2):
answer = []
temp1 = [format(i, 'b').zfill(n) for i in arr1] # arr1 => 2진수 n자리로 변환
temp2 = [format(j, 'b').zfill(n) for j in arr2] # arr2 => 2진수 n자리로 변환
# 반복문을 통해 지도의 각 자리를 비교
for a1, a2 in zip(temp1, temp2):
cnt = ""
for k in range(n):
# 각 자리의 수를 더했을 때 0보다 크면 : 벽
if int(a1[k]) + int(a2[k]) > 0:
cnt += "#"
# 0보다 작으면 : 공백
else:
cnt += " "
answer.append(cnt)
return answer
# print(solution(6, [46, 33, 33, 22, 31, 50], [27, 56, 19, 14, 14, 10])) # 예시 코드
github
'CodingTest > Programers' 카테고리의 다른 글
[programers] 프로그래머스(파이썬) : 소수 만들기 (0) | 2022.04.24 |
---|---|
[programers] 프로그래머스(파이썬) : 신고 결과 받기 (0) | 2022.04.23 |
[programers] 프로그래머스(파이썬) : 다단계 칫솔 판매 (0) | 2022.01.21 |
[programers] 프로그래머스 카카오(파이썬) : [1차] 다트 게임 (0) | 2022.01.14 |
[programers] 프로그래머스 카카오(파이썬) : [3차] n진수 게임 (0) | 2022.01.07 |