πŸ“Œ 파이썬 μœΌλ‘œ 풀이

 

πŸ“Œ λ¬Έμ œ 링크 :

 

ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€

μ½”λ“œ μ€‘μ‹¬μ˜ 개발자 μ±„μš©. μŠ€νƒ 기반의 ν¬μ§€μ…˜ λ§€μΉ­. ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€μ˜ 개발자 λ§žμΆ€ν˜• ν”„λ‘œν•„μ„ λ“±λ‘ν•˜κ³ , λ‚˜μ™€ 기술 ꢁ합이 잘 λ§žλŠ” 기업듀을 λ§€μΉ­ λ°›μœΌμ„Έμš”.

programmers.co.kr

 

πŸ“Œ λ¬Έμ œ μ„€λͺ… :

λ„€μ˜€λŠ” ν‰μ†Œ ν”„λ‘œλ„κ°€ λΉ„μƒκΈˆμ„ μˆ¨κ²¨λ†“λŠ” μž₯μ†Œλ₯Ό μ•Œλ €μ€„ 비밀지도λ₯Ό 손에 λ„£μ—ˆλ‹€. 그런데 이 λΉ„λ°€μ§€λ„λŠ” 숫자둜 μ•”ν˜Έν™”λ˜μ–΄ μžˆμ–΄ μœ„μΉ˜λ₯Ό ν™•μΈν•˜κΈ° μœ„ν•΄μ„œλŠ” μ•”ν˜Έλ₯Ό 해독해야 ν•œλ‹€. λ‹€ν–‰νžˆ 지도 μ•”ν˜Έλ₯Ό 해독할 방법을 적어놓은 λ©”λͺ¨λ„ ν•¨κ»˜ λ°œκ²¬ν–ˆλ‹€.

  1. μ§€λ„λŠ” ν•œ λ³€μ˜ 길이가 n인 μ •μ‚¬κ°ν˜• λ°°μ—΄ ν˜•νƒœλ‘œ, 각 칸은 "곡백"(" ") λ˜λŠ” "λ²½"("#") 두 μ’…λ₯˜λ‘œ 이루어져 μžˆλ‹€.
  2. 전체 μ§€λ„λŠ” 두 μž₯의 지도λ₯Ό κ²Ήμ³μ„œ 얻을 수 μžˆλ‹€. 각각 "지도 1"κ³Ό "지도 2"라고 ν•˜μž. 지도 1 λ˜λŠ” 지도 2 쀑 μ–΄λŠ ν•˜λ‚˜λΌλ„ 벽인 뢀뢄은 전체 μ§€λ„μ—μ„œλ„ 벽이닀. 지도 1κ³Ό 지도 2μ—μ„œ λͺ¨λ‘ 곡백인 뢀뢄은 전체 μ§€λ„μ—μ„œλ„ 곡백이닀.
  3. "지도 1"κ³Ό "지도 2"λŠ” 각각 μ •μˆ˜ λ°°μ—΄λ‘œ μ•”ν˜Έν™”λ˜μ–΄ μžˆλ‹€.
  4. μ•”ν˜Έν™”λœ 배열은 μ§€λ„μ˜ 각 κ°€λ‘œμ€„μ—μ„œ λ²½ 뢀뢄을 1, 곡백 뢀뢄을 0으둜 λΆ€ν˜Έν™”ν–ˆμ„ λ•Œ μ–»μ–΄μ§€λŠ” μ΄μ§„μˆ˜μ— ν•΄λ‹Ήν•˜λŠ” κ°’μ˜ 배열이닀.

λ„€μ˜€κ°€ ν”„λ‘œλ„μ˜ λΉ„μƒκΈˆμ„ 손에 넣을 수 μžˆλ„λ‘, λΉ„λ°€μ§€λ„μ˜ μ•”ν˜Έλ₯Ό ν•΄λ…ν•˜λŠ” μž‘μ—…μ„ 도와쀄 ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜λΌ.

 

πŸ“Œ μ œν•œ 사항

μž…λ ₯으둜 μ§€λ„μ˜ ν•œ λ³€ 크기 n κ³Ό 2개의 μ •μˆ˜ λ°°μ—΄ arr1, arr2κ°€ λ“€μ–΄μ˜¨λ‹€.

  • 1 ≦ n β‰¦ 16
  • arr1, arr2λŠ” 길이 n인 μ •μˆ˜ λ°°μ—΄λ‘œ μ£Όμ–΄μ§„λ‹€.
  • μ •μˆ˜ λ°°μ—΄μ˜ 각 μ›μ†Œ xλ₯Ό μ΄μ§„μˆ˜λ‘œ λ³€ν™˜ν–ˆμ„ λ•Œμ˜ κΈΈμ΄λŠ” n μ΄ν•˜μ΄λ‹€. 즉, 0 ≦ x β‰¦ 2n - 1을 λ§Œμ‘±ν•œλ‹€.

+ 좜λ ₯ ν˜•μ‹

μ›λž˜μ˜ 비밀지도λ₯Ό ν•΄λ…ν•˜μ—¬ '#', κ³΅λ°±μœΌλ‘œ κ΅¬μ„±λœ λ¬Έμžμ—΄ λ°°μ—΄λ‘œ 좜λ ₯ν•˜λΌ.

 

πŸ“Œ μž…μΆœλ ₯ 예


μΆ”μΈ‘) 

arr1와 arr2λ₯Ό for문을 돌렀 같은 인덱슀의 값을 κ°€μ Έμ˜¨λ‹€.

μ΄μ§„μˆ˜ μ΄λ―€λ‘œ 2둜 λͺ«μ΄ 0이 λ λ•ŒκΉŒμ§€ λ‚˜λ¨Έμ§€λ₯Ό μ°¨λ‘€μ°¨λ‘€ μ €μž₯ν•˜κ³  μ—­μœΌλ‘œ μ •λ ¬ν•œλ‹€, λͺ«μ„ λ‹€μ‹œ λŒ€μž…ν•˜μ—¬ λͺ«μ΄ 0이 λ‚˜μ˜¬λ•ŒκΉŒμ§€μΈ n번 반볡

arr1κ³Ό arr2의 ν•˜λ‚˜ 인덱슀 값을 각각 μœ„μ²˜λŸΌ μ²˜λ¦¬ν•˜μ—¬ μ΄μ§„μˆ˜ λ°°μ—΄λ‘œ ν‘œν˜„ν–ˆμœΌλ©΄

이 배열듀을 κ°€μ§€κ³  for문을 돌렀 각 arr1 λ‚˜ arr2 μ΄μ§„μˆ˜ λ°°μ—΄μ˜ 인덱슀 λ§ˆλ‹€  ν•˜λ‚˜λΌλ„ 1이면 "#" μ•„λ‹ˆλ©΄ " " 곡백처리

λ¬Έμžμ—΄μ— μΈλ±μŠ€λ§ˆλ‹€ μ²˜λ¦¬ν•œ 값을 더해주고 λ§ˆμ§€λ§‰ κ²°κ³Ό 배열에 appendν•˜μ—¬ λͺ¨λ“  arrλ₯Ό μ²˜λ¦¬ν•˜κ³  λ°˜ν™˜ν•œλ‹€. 

 

 

μ†ŒμŠ€μ½”λ“œ) 

* 1μ°¨) 성곡

def solution(n, arr1, arr2):
    arr1_bi = []
    arr2_bi = []
    result_arr = []

    for i in range(n):

        for x in range(n) :
            arr1_bi.append(arr1[i] % 2)
            arr1[i] = int(arr1[i] / 2)

            arr2_bi.append(arr2[i] % 2)
            arr2[i] = int(arr2[i] / 2)

        arr1_bi.reverse()
        arr2_bi.reverse()

        result = ""
        for y in range(n) :
            if arr1_bi[y] == 0 and arr2_bi[y] == 0 :
                result += " "
            else:
                result += "#"

        result_arr.append(result)

        arr1_bi = []
        arr2_bi = []

    return result_arr

 

리뷰) 

μΆ”μΈ‘λŒ€λ‘œ ν’€μˆ˜ μžˆμ—ˆλ˜ 문제. 더 쒋은 방법을 생각해 λ³΄λŠ” 것도 쒋을듯!

λΉ„νŠΈμ—°μ‚°μžλ₯Ό μ΄μš©ν•œ 풀이해보기!

+ Recent posts