그냥하는코딩
프로그래머스 1단계 - [1차 비밀지도] 본문
https://programmers.co.kr/learn/courses/30/lessons/17681
코딩테스트 연습 - [1차] 비밀지도
비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다
programmers.co.kr
카카오 2018년도 블라인드 채용 문제입니다.
1. 문제이해
- 이진법 변환에 대한 이해
- or 문에 대한 구현
2. 코드작성
def solution(n, arr1, arr2):
answer = []
# 이진법으로 변환한 값을 담는 공간
arrBinary1 = []
arrBinary2 = []
for i in range(len(arr1)):
# 임시 String 을 담는 공간
tempStr1 = ''
tempStr2 = ''
# 이진법 구하기
while arr1[i] > 0:
tempStr1 = str(arr1[i] % 2) + tempStr1
arr1[i] = arr1[i] // 2
while arr2[i] > 0:
tempStr2 = str(arr2[i] % 2) + tempStr2
arr2[i] = arr2[i] // 2
# 빈공간에 0으로 채워넣기
arrBinary1.append(tempStr1.rjust(n, '0'))
arrBinary2.append(tempStr2.rjust(n, '0'))
for i in range(n):
tempAnswer = ''
for j in range(n):
# or 문으로 둘중 하나라도 1이면 #
if arrBinary1[i][j] == '1' or arrBinary2[i][j] == '1':
tempAnswer = tempAnswer + '#'
else:
tempAnswer = tempAnswer + ' '
answer.append(tempAnswer)
return answer
※ 시간복잡도

3. 풀이 간 체크사항
1) n개만큼 공백 채우기
"5".rjust(5, '0') # 00005
"5".ljust(5, '0') # 50000
"5".zfill(5) # 00005
2) 이진수 구하기 및 바이트 or연산
b = bin(8) # 0b1000
bin(a|b) # or
bin(a&b) # and
bin(a^b) # xor
bin(~a) # not
파이썬 함수를 모르니까 소스가 길어지는것 같다...
'부스트캠프 준비기 > 코딩테스트 알고리즘' 카테고리의 다른 글
| 프로그래머스 3단계 - [네트워크] (0) | 2021.06.10 |
|---|---|
| 프로그래머스 1단계 - [행렬의 덧셈] (0) | 2021.06.05 |
| 파이썬 언어 코딩테스트 용 함수 알고리즘 정리 (0) | 2021.05.23 |
| 프로그래머스 2단계 - 124 나라의 숫자 (0) | 2021.05.21 |
| 프로그래머스 2단계 - 짝지어 제거하기 (0) | 2021.05.19 |
Comments