코딩문제풀이/파이썬

[프로그래머스] 비밀지도 (파이썬)

오늘밤공부 2023. 3. 3. 12:45
반응형

🗓️ 문제 설명

  • 네오는 프로도가 비상금을 숨겨놓은 장소를 알려줄 비밀지도를 손에 넣었습니다.
  • 지도는 한 변의 길이가 n인 정사각형 배열 형태로 각 칸은 공백(' ') 또는 벽('#') 두 종류로 이루어져 있습니다.
  • 전체 지도는 2장의 지도를 겹쳐서 얻을 수 있으며, 지도 1과 지도 2에서 하나라도 벽인 부분은 전체 지도에서도 벽입니다.
  • 2장의 지도에서 모두 공백인 부분은 전체 지도에서도 공백입니다.
  • 지도 1과 지도 2는 각각 정부 배열로 암호화되어 있습니다.
  • 암호화된 지도에서 벽 부분은 1, 공백 부분은 0으로 부호화했을 때, 얻어지는 이진수에 해당하는 값의 배열입니다.
  • 제한 사항
    • 1 ≤ n ≤ 16
    • arr1, arr2는 길이 n인 정수 배열
    • 정부 배열의 각 원소 x를 이진수로 변환했을 때의 길이는 n 이하
  • 입출력 예시
n arr1 arr2 출력
5 [9, 20, 28, 18, 11] [30, 1, 21, 17, 28] ['#####', '# # #', '### #', '#  ##', ' #####']
6 [46, 33, 33, 22, 31, 50] [27, 56, 19, 14, 14, 10] ['######', '###  #', '##  ##', ' #### ', ' #####', '### # ']

 

💻 코드

최종 코드

 

코드 풀이

 

다른 사람 풀이

더보기

풀이 1번

  1. 3번줄 : arr1과 arr2의 원소 i, j를 꺼내는 반복문
  2. 4번줄 : i와 j의 이진수 값을 or로 묶어서 'b'아래의 부분만 저장
  3. 5번줄 : 4번줄에서 만든 값의 오른쪽에 0을 채워넣음
  4. 6번줄 : '1'을 '#'으로 변경(1을 벽으로 변경)
  5. 7번줄 : '0'을 ' '으로 변경(0을 공백으로 변경)
  6. 8번줄 : 벽과 공백으로 바꾼 값을 answer에 추가하여 반환

 

 

사용 함수

더보기
  • bin(number) : number를 이진수로 변경
  • func.zfill(n) : n의 자릿수만큼 0을 채움
반응형