- 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/17681
- level1
- 프로그래머스
Q1) 문제를 어떻게 이해했나요?
A1) 주어진 두 지도를 각각 이진수 형태로 변환하고, 각 위치에서 둘 중 하나라도 벽(1)이면 전체 지도에서 벽으로 표시해야합니다.
Q2) 어떤 방식으로 풀건가요?
A2) OR 연산을 수행하여 둘 중 하나라도 1이면 1이 되도록 처리를 합니다. 그리고, 그 결과를 n자리의 2진수로 변환합니다.
2진수 문자열에서 '1' 은 '#'으로 '0'은 ' '으로 치환하여 리스트로 반환합니다.
🔥 내 코드: 2진수를 직접 구하는 함수를 만들었음
def num_to_2(n, num):
result = ""
while num > 0:
result = str(num % 2) + result
num //= 2
if len(result) < n:
result = "0" * (n - len(result)) + result
return result
def solution(n, arr1, arr2):
answer = []
for x, y in zip(arr1, arr2):
ans = ""
x2 = num_to_2(n, x)
y2 = num_to_2(n, y)
for i in range(n):
if x2[i] == "1" or y2[i] == "1":
ans += "#"
else:
ans += " "
answer.append(ans)
return answer
💡 최적화된 코드: 2진수를 바로 구할 수 있는 format(num, "b")함수 사용
def solution(n, arr1, arr2):
answer = []
for i in range(n):
# 비트 OR 연산
combined = arr1[i] | arr2[i]
# 이진수로 변환, n자리로 맞추기
binary_str = format(combined, 'b').zfill(n)
# '#'과 ' '로 변환
line = ''.join(['#' if c == '1' else ' ' for c in binary_str])
answer.append(line)
return answer
[추천 강의✨]
38군데 합격 비법, 2025 코딩테스트 필수 알고리즘| 딩코딩코 - 인프런 강의
현재 평점 5.0점 수강생 2,019명인 강의를 만나보세요. 초보자도 쉽게 이해하는 단계별 설명으로, 막연했던 코딩 테스트가 명확해집니다. 필요한 것만 배우고 바로 실전에 적용하세요! 알고리즘,
www.inflearn.com
6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법| 딩코딩코 - 인
현재 평점 5.0점 수강생 457명인 강의를 만나보세요. 모든 이력서가 비슷해 보이는 세상, ‘차별화’가 합격을 만듭니다. 6주간, 백엔드 실무자가 직접 전하는 실전 이력서 전략 4가지를 배우세요.
www.inflearn.com
728x90
반응형
'Algorithm' 카테고리의 다른 글
| [백준] Input 처리 방법 (0) | 2025.06.23 |
|---|---|
| [백준 15649 | python] N과 M (1) (백트레킹) (0) | 2025.06.21 |
| [카카오 코테 2018 | python] [1차] 다트 게임 (0) | 2025.06.19 |
| [카카오 코테 2023 | python] 개인정보 수집 유효기간 (0) | 2025.06.18 |
| [카카오 코테 2022 | python] 양궁대회 (0) | 2025.06.17 |