[1차] 비밀지도
문제는 위의 링크에서 확인이 가능하며, 입출력의 예시는 아래와 같다.
Example1:
#Input : n(변의 크기), arr1(지도1), arr2(지도2)
n = 5
arr1 = [9, 20, 28, 18, 11]
arr2 = [30, 1, 21, 17, 28]
#Output
["#####","# # #", "### #", "# ##", "#####"]
Example2:
#Input
n = 6
arr1 = [46, 33, 33 ,22, 31, 50]
arr2 = [27 ,56, 19, 14, 14, 10]
#Output
["######", "### #", "## ##", " #### ", " #####", "### # "]
Solution
def solution(n, arr1, arr2):
answer = []
for a1, a2 in zip(arr1, arr2):
a12 = str(bin(a1 | a2))[2:] # a1 OR a2를 binary로 바꿔주는 bin() function을 통해 2진수로 바꿔준 후, 불필요한 맨 앞 2자리를 버리기 위해 string으로 변환 후 index slicing
a12 = a12.rjust(n,"0") #오른쪽 정렬 후 0으로 채우기
a12 = a12.replace('1',"#") # 1은 #으로 replace
a12 = a12.replace('0', " ") # 0은 공백으로 replace
answer.append(a12)
return answer
#관련 개념 이해하기
(1) 내장함수 zip
name = ['a', 'b']
value = [1, 2]
for n, v in zip(name, value):
print(n, v)
#a 1
#b 2
#range 사용
Number = [1,2,3,4]
Name = ['kim','park','lee','choi']
dic = {}
for i in range(len(Number)) : #Number의 원소 개수만큼의 range로 돌림
dic[Number[i]] = Name[i] #Number의 i번째 원소의 key 값은 Name의 i번째 원소
print(dic)
#zip 사용
Number = [1,2,3,4]
Name = ['kim','park','lee','choi']
dic = {}
for number , name in zip(Number,Name): #number와 name을 Number,Name로 묶기
dic[number] = name
print(dic)
#{1: 'kim', 2: 'park', 3: 'lee', 4: 'choi'}
(2) 'or'과 '|' 연산자 비교
- 'or' 논리 연산자: True, False 연산
(예: x or y의 경우, x가 True면 x가 반환되고, x가 False면 y값을 반환)
- '|' 비교 연산자: bitwise 연산자 (각 자릿수를 비교하여 둘 중 하나만 1이면 1)
8 or 10
#8이 True이므로 8이 반환
8|10 #이진수 표현: 1000|1010
#0 혹은 1이 있으면 1로 대체하여 1010이므로 10이 반환
170|195 #이진수 표현: 0b10101010|0b11000011
#0 혹은 1이 있으면 1로 대체하여 0b11101011이므로 235이 반환
(3) rjustrjust(width, [fillchar])
- 오른 쪽 정렬 후 width에서 남는 만큰 fillchar로 채우기
val = "123".rjust(5, "a")
print(val)
#aa123
val = "123".rjust(3, "a")
print(val)
#123
더보기
(참고 사이트)
'Python > PS in Python' 카테고리의 다른 글
LeetCode 771. Jewels and Stones - Python (0) | 2020.10.19 |
---|---|
[1차] 다트 게임 : 코딩테스트 연습 / Python / Programmers / Level1 (0) | 2020.10.16 |
LeetCode 581. Shortest Unsorted Continuous Subarray - Python (0) | 2020.09.22 |
LeetCode 20. Valid Parentheses - Python (0) | 2020.09.21 |
LeetCode 234. Palindrome Linked List - Python (0) | 2020.09.18 |
댓글