[프로그래머스] 비밀지도 Lv.1 - [파이썬/python]
https://school.programmers.co.kr/learn/courses/30/lessons/17681
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
정수 배열 arr1, arr2를 두 배열의 원소를 하나하나 OR연산하여 2진수로 바뀐 뒤
1은 "#" 0은 " "(공백)으로 바꾸어 배열에 넣은 후 반환(return)하는 문제입니다.
힌트 보기
- " | " 기호를 사용하면 OR연산을 하실 수 있습니다.
- 파이썬에서 bin()함수를 사용하여 숫자를 2진수로 변환할 수 있습니다. # 출력: 0b1001
- 파이썬에서 문자열의 메서드인 replace()를 통해 "1"은 "#", "0"은 " "(공백)으로 변환할 수 있습니다.
정답 주의!!!

def solution(n, arr1, arr2):
result = [] # 최종 결과를 저장할 리스트 초기화
# 두 배열을 병렬로 처리하기 위해 zip 사용
for a, b in zip(arr1, arr2):
# 두 숫자의 OR 연산을 수행한 결과를 이진수 문자열로 변환
# bin()을 사용하면 "0b10100"으로 나오기때문에 [2:]를 통해 앞의 0b를 빼줘야한다
value = bin(a | b)[2:]
# 이진수 문자열의 길이가 n보다 작으면 앞에 "0"을 채워줌
if len(value) < n:
value = "0"*(n - len(value)) + value
# "0"을 " "(공백)으로, "1"을 "#"으로 변환
value = value.replace("0", " ").replace("1", "#")
# 결과 리스트에 변환된 문자열 추가
result.append(value)
return result

728x90
'코딩테스트' 카테고리의 다른 글
[프로그래머스] 예산 - Lv.1 (30) | 2023.08.31 |
---|---|
[프로그래머스] 명예의 전당 (1) - Lv.1 (35) | 2023.08.30 |
[프로그래머스] 약수의 개수와 덧셈 - Lv.1 (20) | 2023.08.24 |
[프로그래머스] 두 정수 사이의 합 - Lv.1 (30) | 2023.08.23 |
[프로그래머스] 문자열 내 p와 y의 개수 - Lv.1 (24) | 2023.08.21 |