[프로그래머스] 🗺 비밀지도 - [1차] 2018 카카오 블라인드 채용 / Python
글 작성자: 택시 운전사
반응형
🗺 비밀지도 문제 풀어보기
😃 나의 코드
def solution(n, arr1, arr2):
answer = []
for decimal1, decimal2 in zip(arr1, arr2):
binary12 = str(bin(decimal1 | decimal2))[2:]
binary12 = '0' * (n - len(binary12)) + binary12
binary12 = binary12.replace('1', '#')
binary12 = binary12.replace('0', ' ')
answer.append(binary12)
return answer
비트연산(Bitwise Operation)을 이용하면 쉽게 풀 수 있는 문제입니다. 문제 중간에 둘 중 하나가라는 말이 힌트가 될 수 있겠네요. 풀이 과정은 다음과 같습니다. 두 지도의 배열을 zip
을 이용하여 각각의 배열에서 원소를 하나씩 꺼냅니다. 이제 이 10진 데이터를 OR로 비트 연산합니다. 각 지도의 데이터는 10진법으로 암호화 되어 있기 때문에 이를 2진법으로 바꾸는 데 여기서는 bin()
을 이용합니다. bin()
을 이용하게 되면 앞에 0b
라는 문자가 추가로 붙습니다 따라서 적절하게 문자열을 잘라줍니다. 이진 데이터의 길이가 지도의 한 변의 길이와 같아야하기 때문에 전체 길이가 n이 되도록 앞에 0
을 추가해줍니다. 이제 이 이진법으로 된 데이터를 출력 형태에 맞게 문자열의 replace()
Method를 이용하여 변환한 뒤 각각 answer
배열에 append()
해주면 문제가 마무리됩니다.
Written with StackEdit.
반응형
'Algorithm > Problem Solving' 카테고리의 다른 글
[프로그래머스] 👨💻 캐시 - [1차] 2018 카카오 블라인드 채용 / Python (0) | 2019.02.13 |
---|---|
[프로그래머스] 🎯 다트 게임 - [1차] 2018 카카오 블라인드 채용 / Python (1) | 2019.02.12 |
🐥 2018 카카오 블라인드 채용 알고리즘 테스트 3차 Python 풀이 모음 / KAKAO BLIND RECRUITMENT (0) | 2019.02.09 |
🐥 2018 카카오 블라인드 채용 알고리즘 테스트 1차 Python 풀이 모음 / KAKAO BLIND RECRUITMENT (0) | 2019.02.09 |
🐥 2019 카카오 블라인드 채용 코딩 테스트 Python 풀이 모음 / KAKAO BLIND RECRUITMENT (0) | 2019.02.09 |
댓글
이 글 공유하기
다른 글
-
[프로그래머스] 👨💻 캐시 - [1차] 2018 카카오 블라인드 채용 / Python
[프로그래머스] 👨💻 캐시 - [1차] 2018 카카오 블라인드 채용 / Python
2019.02.13 -
[프로그래머스] 🎯 다트 게임 - [1차] 2018 카카오 블라인드 채용 / Python
[프로그래머스] 🎯 다트 게임 - [1차] 2018 카카오 블라인드 채용 / Python
2019.02.12 -
🐥 2018 카카오 블라인드 채용 알고리즘 테스트 3차 Python 풀이 모음 / KAKAO BLIND RECRUITMENT
🐥 2018 카카오 블라인드 채용 알고리즘 테스트 3차 Python 풀이 모음 / KAKAO BLIND RECRUITMENT
2019.02.09 -
🐥 2018 카카오 블라인드 채용 알고리즘 테스트 1차 Python 풀이 모음 / KAKAO BLIND RECRUITMENT
🐥 2018 카카오 블라인드 채용 알고리즘 테스트 1차 Python 풀이 모음 / KAKAO BLIND RECRUITMENT
2019.02.09