728x90
<문제 링크>
https://programmers.co.kr/learn/courses/30/lessons/17681
코딩테스트 연습 - [1차] 비밀지도
비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다
programmers.co.kr
<문제 풀이>
- 2진수의 값을 AND 연산하여 2진수 문자로 출력
- 2진수의 맨 앞이 0일 경우, 0은 생략되므로 zfill() 메서드를 사용하여 길이 맞춰줌
<코드>
#1차 시도. 3번 오류
def solution(n, arr1, arr2):
zip_ = []
bin_ = []
for i,k in zip(arr1,arr2):
zip_.append(i | k)
for idx, j in enumerate(zip_):
bin_.append(bin(j))
for i in range(len(bin_)):
bin_[i] = bin_[i].replace('0b','')
bin_[i] = bin_[i].zfill(len(max(bin_)))
for i in range(len(bin_)):
bin_[i] = bin_[i].replace('1','#')
bin_[i] = bin_[i].replace('0',' ')
return bin_
def solution(n, arr1, arr2):
answer = []
for x,y in zip(arr1,arr2):
answer.append(bin(x|y))
answer = [x.replace("0b","") for x in answer]
answer = [x.zfill(n) for x in answer]
answer = [x.replace("1","#") for x in answer]
answer = [x.replace("0"," ") for x in answer]
return answer
<고쳐야 할 점>
- for문 최대한 줄이기
- replace 대신 [start:end] 활용해보기
- zfill() 기억하기
'두두의 알고리즘 > 문제' 카테고리의 다른 글
[해시] 프로그래머스 L1 '완주하지 못한 선수' (Python) (0) | 2021.11.23 |
---|---|
[해시] 백준 15829번 'Hashing' (Python) (0) | 2021.11.23 |
[진법변환] 백준 2745번 '진법 변환' (Python) (0) | 2021.11.23 |
[진법변환] 백준 5692번 '팩토리얼 진법' (Python) (0) | 2021.11.23 |
[탐욕법] 난이도1, 2019 국가 교육기관 코딩 테스트 '숫자 카드 게임' (Python) (0) | 2021.11.23 |