기타
프로그래머스 비밀지도
우히힝
2021. 10. 31. 18:24
링크 : https://programmers.co.kr/learn/courses/30/lessons/17681
코딩테스트 연습 - [1차] 비밀지도
비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다
programmers.co.kr
문제의 예시를 보면
행의 오른쪽으로 갈수록 값이 작아지고 왼쪽에 있을수록 값이 큰데.
하나하나 더해보면 오른쪽에서 왼쪽으로 x2로 늘어나는걸 알수있다.
사진 행 = 5 이므로 [16,8,4,2,1] 의 값을 가짐.
이걸 이용해서 문제풀이를 했읍니다.
암호화 되어있는 arr1의 첫 번째 행을 보면 # 0은 공백을 뜻함.
[0,1,0,0,1] = 9 인데
방금 올린 [16,8,4,2,1] 에 대해서 for 문을 돌려서 값을 조금씩 빼가면서 계산했음.
def solution(n, arr1, arr2):
answer = []
result = [[0]*n for i in range(n)]
temp=[]
for i in range(1,n+1):
temp.append(2**(n-i))
for i in range(n):
while arr1[i] != 0:
for j in range(n):
if arr1[i] >= temp[j]:
arr1[i] -= temp[j]
result[i][j] = 1
for i in range(n):
while arr2[i] != 0:
for j in range(n):
if arr2[i] >= temp[j]:
arr2[i] -= temp[j]
result[i][j] = 1
a=""
for i in result:
for j in i:
if j == 1:
a += '#'
else:
a += " "
answer.append(a)
a=""
return answer
시간은 잘 몰?루겠네요?