문제 링크 (Level 1)
https://school.programmers.co.kr/learn/courses/30/lessons/17681?language=python3
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
나의 코드 (Python)
def solution(n, arr1, arr2):
    answer = []
    tmp1 = [] # 임시저장 배열1
    tmp2 = [] # 임시저장 배열2
    
    for i in arr1:
        tmp = [] # for 안에서만 쓸 임시 배열
        for _ in range(n):
            # 이진법으로 변환
            num = i % 2
            i //= 2
            tmp.insert(0, num)
        tmp1.append(tmp) # 한 줄씩 저장
    
    for j in arr2:
        tmp = [] # for 안에서만 쓸 임시 배열
        for _ in range(n):
            # 이진법으로 변환
            num = j % 2
            j //= 2
            tmp.insert(0, num)
        tmp2.append(tmp) # 한 줄씩 저장
    
    # tmp1과 tmp2를 비교할 이중for문
    for a in range(n):
        tmp = "" # for안에서만 사용할 임시 string
        for b in range(n):
            if tmp1[a][b] == 1 or tmp2[a][b] == 1: # 하나라도 벽이면 #
                tmp += "#"
            else:
                tmp += " "
        answer.append(tmp) # 한 줄씩 저장
        
    return answer
arr1과 arr2의 벽을 파악하여 비교하는 방법은 두 배열을 이진법으로 먼저 바꿔어 새로운 배열에 각각 저장합니다.
그 다음 이진법으로 바꾼 두 배열을 비교하여 하나라도 1이 있다면 그곳에는 벽이 존재합니다.
둘 다 0인 경우는 벽이 없습니다.
'코딩공부 > 프로그래머스 (python)' 카테고리의 다른 글
| [프로그래머스] 약수의 합 (Python) (0) | 2022.07.24 | 
|---|---|
| [프로그래머스] 소수 찾기 (Python) (0) | 2022.07.23 | 
| [프로그래머스] 2016년 (Python) (0) | 2022.07.19 | 
| [프로그래머스] 자연수 뒤집어 배열로 만들기 (Python) (0) | 2022.04.25 | 
| [프로그래머스] 이상한 문자 만들기 (Python) (0) | 2022.04.14 | 
 
										
									
댓글