◈ 오류 정정 및 피드백 환영
코딩테스트 연습 - [1차] 비밀지도
비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다
programmers.co.kr
🔎문제 분석
주어진 숫자를 2로 계속 나누다가 몫이 0이 되면 나머지를 역순으로 출력하면 되기 때문에 이진법을 구현하기 위해서는 재귀로 접근하면 된다.
def to_bin(res, num):
q, r = divmod(num, 2)
if q==0:
res.append(r)
return
to_bin(res, q)
res.append(r)
res = []
to_bin(res, 11)
다만 지도의 한 변의 길이가 고정이므로 이진수의 크기 역시 고정이므로 빈 리스트에 무작정 추가해주는 대신에 0으로 초기화한 리스트에 이진수로 변환한 숫자를 넣어주면 된다.
def to_bin(bin_num, num, v):
q, r = divmod(num, 2)
if q==0:
bin_num[v] = r
return
to_bin(bin_num, q, v-1)
bin_num[v] = r
def to_bin(bin_num, num, v):
q, r = divmod(num, 2)
if q==0:
bin_num[v] = r
return
to_bin(bin_num, q, v-1)
bin_num[v] = r
def solution(n, arr1, arr2):
answer = []
for n1, n2 in zip(arr1, arr2):
map1, map2 = [0]*n, [0]*n
to_bin(map1,n1,n-1)
to_bin(map2,n2,n-1)
answer.append(''.join(list(map(lambda x, y: " " if x+y==0 else "#", map1, map2))))
return answer
'Algorithm > Python' 카테고리의 다른 글
[Python] 프로그래머스 - 크레인 인형뽑기 게임 (0) | 2022.03.09 |
---|---|
[Python] 프로그래머스 - 실패율 (0) | 2022.03.08 |
[Python] 프로그래머스 - [1차] 뉴스 클러스터링(정규식) (0) | 2022.03.05 |
[Python] 프로그래머스 - [1차] 추석 트래픽(Greedy) (0) | 2022.03.04 |
[Python] 백준 - 10799번 쇠막대기(Stack) (0) | 2022.03.03 |
댓글