• Home
  • About
    • on Weekend photo

      on Weekend

      𝙎𝙩𝙪𝙙𝙮𝙞𝙣𝙜

    • Learn More
    • Instagram
    • Github
  • Archive
    • All Posts
    • All Tags
    • All Categories
  • Categories
    • Problem Solving
    • TIL
    • Study
    • Etc
    • 필사
  • Projects

[프로그래머스] 2018 Kakao - 비밀지도 (Python)

23 Apr 2021

문제

2018년도 카카오 1차 문제 중 1번 문제인 비밀지도 를 풀었습니다. 간단한 문제로, 구현해야 하는 내용은 다음과 같습니다.

  1. 어떤 수가 주어졌을 때 이를 이진수로 만들 수 있는가?
  2. and와 or을 사용할 수 있는가?

정답률은 81.78%였다고 합니다.

풀이

파이썬 내장함수를 사용하지 않고 + bitwise 없이 푸는 법은 다음과 같습니다.

def make2(num,n) :
    arr = [0]*n
    idx = n-1
    while num >= 1 :
        arr[idx] = num%2
        num//=2
        idx-=1
    
    return arr
    
def solution(n, arr1, arr2):
    answer = []
        
    for idx in range(n) :
        tempArr1 = make2(arr1[idx],n)
        tempArr2 = make2(arr2[idx],n)
        tempAns = ""
        for i in range(n) :
            if tempArr1[i] == 1 or tempArr2[i] == 1 :
                tempAns+='#'
            else :
                tempAns+=' '
        answer.append(tempAns)
    
    return answer

파이썬 내장함수와 bitwise를 사용하는 풀이는 다음과 같습니다.

def solution(n, arr1, arr2):
    answer = []
        
    for idx in range(n) :
        res = bin(arr1[idx] | arr2[idx])[2:]
        ans = '0'*(n-len(res))+res
        ans = ans.replace('1','#')
        ans = ans.replace('0',' ')
        answer.append(ans)
    
    return answer


problem_solvingpython Share Tweet +1