728x90
안녕하세요 세기무민입니다.
이번에 풀어볼 문제는 2018년도 카카오 블라인드 테스트 1차 비밀지도 문제입니다.
문제 설명
입출력 및 예시
문제 풀이
이번 문제는 위의 설명대로 문제를 접근하면 됩니다.
요약을 하자면
1. 2진수로 변환하기
2. 2진수로 변환한 수의 자리수를 맞춰주기
3. 2진수로 변환한 값들을 비교 및 #으로 출력
arr1과 arr2의 값들을 2진수로 변환해서 두개를 합쳤을 때 1인 경우에 #으로 표시해주면 됩니다.
여기서 2진수로 변환하는 방법이 여러가지가 있지만 저는 format을 이용하였습니다.
2진수로 변환을 완료했다면 다음으로 확인할 것은 해당 배열의 자리수와 일치하는지 확인이 필요하고
만약 자리수가 다르면 자리수를 맞춰주면 됩니다.
마지막으로 자리수를 맞췄다면 해당 값들을 비교하여 #로 출력해주면 끝!
코드 및 결과
def solution(n, arr1, arr2):
leftList = []
rightList = []
result = []
for i in range(n):
twos = format(arr1[i], 'b')
twos1 = format(arr2[i], 'b')
while n > len(twos):
if n != len(twos):
twos = '0' + twos
while n > len(twos1):
if n != len(twos1):
twos1 = '0' + twos1
leftList.append(twos)
rightList.append(twos1)
for i in range(n):
tmp = ''
for j in range(n):
if leftList[i][j] == '1' or rightList[i][j] == '1':
tmp = tmp + '#'
else:
tmp = tmp + ' '
result.append(tmp)
return result;
위의 설명처럼 만든 코드이며 해당 코드를 돌리면 정답이 됩니다.
세기무민의 다양한 알고리즘 문제 풀이를 보고 싶다면 아래 깃에서 확인 가능합니다!
다음 포스팅에서는 더 유익한 정보로 찾아오겠습니다.!
728x90
'Algorithm > 프로그래머스' 카테고리의 다른 글
프로그래머스 : 코딩 기초 트레이닝 > 문자열 출력하기 풀이 (0) | 2024.11.11 |
---|---|
프로그래머스 자물쇠와 열쇠 문제 풀이 - [세무민의 코딩일기] (0) | 2022.05.17 |
프로그래머스 키패드 누르기 문제풀이- [세무민의 코딩일기] (0) | 2022.02.20 |
[세무민의 코딩일기] 프로그래머스 : 우유와 요거트가 담긴 장바구니 문제 풀이 (0) | 2022.01.07 |
[세무민의 코딩일기] 프로그래머스 : 헤비 유저가 소유한 장소 문제 풀이 (0) | 2022.01.05 |