문제:
풀이방법:
이진수로 바꾸는 것이 가장 중요한 문제이다. 이진수로 바꾸는 것은 python의 bin을 사용하면 바꿀수 있다. 이 때 bin을 사용하면 앞에 이진수임을 나타내는 값이 붙어 있으므로 이를 떼어서 저장하는 것이 필요하다. 그리고 이를 한 변의 크기와 동일하게 만드는 것이 중요하다. 위 문제의 예시처럼 1은 1이지만 한변의 길이가 5이므로 00001로 맞춰준 것을 알 수 있다. 길이가 동일해야 해독할 수 있으므로 이 작업이 가장 중요하다. 길이를 같게 만들었다면 이제는 단순히 반복문을 사용해서 값을 비교하고 상황에 따라 "#"과 공백을 더해주면 된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
def solution(n, arr1, arr2):
answer = []
for i in range(n):
arr1[i]=bin(arr1[i])[2:]
arr2[i]=bin(arr2[i])[2:]
for i in range(n):
code=""
a=max(len(arr1[i]),len(arr2[i]))
if n!=len(arr1[i]):
arr1[i]="0"*(n-len(arr1[i]))+arr1[i]
if n!=len(arr2[i]):
arr2[i]="0"*(n-len(arr2[i]))+arr2[i]
for j in range(n):
if arr1[i][j]==arr2[i][j]:
if arr1[i][j]=='0':
code+=" "
else:
code+="#"
else:
code+="#"
answer.append(code)
return answer
|
cs |
문제링크:
'Algorithm > Python' 카테고리의 다른 글
[Programmers]2018 Kakao.실패율 (0) | 2019.09.30 |
---|---|
[Programmers]2018 Kakao. 오픈채팅방 (0) | 2019.09.29 |
[Programmers]2017 Kakao.캐시 (0) | 2019.09.27 |
[Programmers]2017 Kakao. 뉴스 클러스터링 (0) | 2019.09.26 |
[BOJ]1987. 알파벳 (0) | 2019.09.25 |