티스토리 뷰
Algorithm/Implementation
(Python) - 프로그래머스(2018 KAKAO BLIND RECRUITMENT) : [1차] 비밀지도
하눤석 2022. 1. 21. 11:56728x90
https://programmers.co.kr/learn/courses/30/lessons/17681
- 해설 :
각 행마다 x라는 값을 이진수로 변경하여 구현할 수 있는 n x n 사이즈의 배열이 두 개 주어진다. 이 때, 이진값이 1이면 벽이고 0이면 통로이다. 이 두 배열을 겹쳤을 때 벽인 부분은 # 통로 부분은 공백으로 표시해서 한 배열에 담으면 된다.
- 풀이 :
arr1과 arr2에 대해 각 자릿수를 이진수로 변경하고 가공한 배열에서 두 배열의 겹치는 위치의 원소 중 하나라도 1일 경우 #으로, 아닌 경우 빈 공백으로 처리하여 결과물을 반환한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | def solution(n, arr1, arr2): answer = [] c = n for a1,a2 in zip(arr1,arr2): n = a1 s = [] while n > 0: s.append(str(n%2)) n //= 2 while len(s) < c: s.append('0') map1 = s[::-1] n = a2 s = [] while n > 0: s.append(str(n%2)) n //= 2 while len(s) < c: s.append("0") map2 = s[::-1] s = '' for i in range(c): if map1[i] == '1' or map2[i] == '1': s += "#" else: s += " " answer.append(s) return answer | cs |
320x100
'Algorithm > Implementation' 카테고리의 다른 글
(Python) - 프로그래머스 : 다음 큰 숫자 (0) | 2022.01.21 |
---|---|
(Python) - 프로그래머스 : 방문 길이 (0) | 2022.01.21 |
(Python) - 프로그래머스 : 모음사전 (0) | 2022.01.21 |
(Python) - 프로그래머스 : 두 개 뽑아서 더하기 (0) | 2022.01.20 |
(Python) - 프로그래머스 : 괄호 회전하기 (0) | 2022.01.20 |
댓글
© 2022 WonSeok, All rights reserved