|
| 1 | +# 28. 비밀 지도 |
| 2 | + |
| 3 | +def solution(n, arr1, arr2): |
| 4 | + answer = [] |
| 5 | + |
| 6 | + # 지도 1 2진수 문자열로 바꾼 리스트 ... 9 -> '0b1001' |
| 7 | + bi_map1_lst = [bin(i) for i in arr1] |
| 8 | + |
| 9 | + # 지도 1 2진수 문자열 정리한 리스트 ... '0b1001' -> '1001' |
| 10 | + map1_lst = [] |
| 11 | + |
| 12 | + # 지도 2 2진수 문자열로 바꾼 리스트(지도 1과 같음) |
| 13 | + bi_map2_lst = [bin(i) for i in arr2] |
| 14 | + |
| 15 | + # 지도 2 2진수 문자열 정리한 리스트(지도 1과 같음) |
| 16 | + map2_lst = [] |
| 17 | + |
| 18 | + # '0b1001' -> '1001' |
| 19 | + for one in bi_map1_lst: |
| 20 | + one = one[2:] |
| 21 | + map1_lst.append(one) |
| 22 | + |
| 23 | + for one in bi_map2_lst: |
| 24 | + one = one[2:] |
| 25 | + map2_lst.append(one) |
| 26 | + |
| 27 | + # '1001' -> '01001' or '01001' -> '1001' |
| 28 | + for i in range(len(map1_lst)): |
| 29 | + if len(map1_lst[i]) < n: |
| 30 | + map1_lst[i] = (n - len(map1_lst[i])) * '0' + map1_lst[i] |
| 31 | + |
| 32 | + for i in range(len(map2_lst)): |
| 33 | + if len(map2_lst[i]) < n: |
| 34 | + map2_lst[i] = (n - len(map2_lst[i])) * '0' + map2_lst[i] |
| 35 | + |
| 36 | + for line1, line2 in zip(map1_lst, map2_lst): |
| 37 | + # 줄 별 문자열 저장 ... '#####' |
| 38 | + line_str = '' |
| 39 | + for sq1, sq2 in zip(line1, line2): |
| 40 | + if sq1 == '1' or sq2 == '1': |
| 41 | + line_str += '#' |
| 42 | + elif sq1 == '0' and sq2 == '0': |
| 43 | + line_str += ' ' |
| 44 | + answer.append(line_str) |
| 45 | + return answer |
| 46 | + |
| 47 | +n_1 = 5 |
| 48 | +arr1_1 = [9, 20, 28, 18, 11] |
| 49 | +arr2_1 = [30, 1, 21, 17, 28] |
| 50 | + |
| 51 | +n_2 = 6 |
| 52 | +arr1_2 = [46, 33, 33, 22, 31, 50] |
| 53 | +arr2_2 = [27, 56, 19, 14, 14, 10] |
| 54 | + |
| 55 | +print(solution(n_1, arr1_1, arr2_1)) |
| 56 | +print(solution(n_2, arr1_2, arr2_2)) |
| 57 | +print() |
| 58 | + |
| 59 | +def solution_best(n, arr1, arr2): |
| 60 | + answer = [] |
| 61 | + |
| 62 | + for i, j in zip(arr1, arr2): |
| 63 | + a12 = bin(i | j)[2:] |
| 64 | + a12 = a12.rjust(n, '0') |
| 65 | + a12 = a12.replace('1', '#') |
| 66 | + a12 = a12.replace('0', ' ') |
| 67 | + answer.append(a12) |
| 68 | + |
| 69 | + return answer |
| 70 | + |
| 71 | +print(solution_best(n_1, arr1_1, arr2_1)) |
| 72 | +print(solution_best(n_2, arr1_2, arr2_2)) |
0 commit comments