일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 포스코 아카데미
- 삼성 SDS
- 포스코 청년
- 추천시스템
- 데이터분석
- 혼공
- 직원 이직률
- 삼성SDS Brightics
- Brigthics
- Brightics를 이용한 분석
- Brightics Studio
- 영상제작기
- 브라이틱스
- 삼성 SDS Brigthics
- 직원 이직여부
- 개인 의료비 예측
- 데이터 분석
- 혼공학습단
- 삼성SDS Brigthics
- 모델링
- 노코드AI
- Brightics
- 브라이틱스 서포터즈
- Brigthics를 이용한 분석
- 캐글
- 혼공머신러닝딥러닝
- Brigthics Studio
- 팀 분석
- 삼성SDS
- 혼공머신
- Today
- Total
데이터사이언스 기록기📚
[프로그래머스] Level 1_[1차] 비밀지도 본문
문제 유형
2018 KAKAO BLIND RECRUITMENT
문제
https://school.programmers.co.kr/learn/courses/30/lessons/17681
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
나의 문제풀이
- 십진법 -> 이진법 : format(해당 숫자, 'b')
[Algorithm/Python] 파이썬 2진수 변환 다양한 풀이 (Convert decimal to binary in python)
문제 양의 정수 n이 주어졌을 때, 이를 이진수로 변환하기 풀이 2진수 변환 함수 사용 ⭕️ binaryNum = format(n, 'b') return binaryNum format 이라는 함수를 이용한다. 'b' 는 2진수를 뜻한다. binaryNum = bi..
minnit-develop.tistory.com
- 자리 수 n과 리스트 안 숫자 개수 맞추기(앞에 '0' 넣기)
- 문자열 변경 함수인 replace 사용
- 변경된 값 변수에 넣어주기
def solution(n, arr1, arr2):
answer = []
arr1_to_binary = []
arr2_to_binary = []
# arr1,arr2 이진법으로 바꾸기(int로 바꿔야지만 자리수 덧셈 가능)
for num1 in arr1:
arr1_to_binary.append(int(format(num1,'b')))
for num2 in arr2:
arr2_to_binary.append(int(format(num2, 'b')))
# 추후 문자열 함수(replace)이용하기 위해 str로 변경
for i in range(len(arr1_to_binary)):
answer.append(str(arr1_to_binary[i] + arr2_to_binary[i]))
# 자리 수와 다른 경우, 앞에 0 추가 후 replace이용하여 #, 으로 변경
for i in range(len(answer)):
if len(answer[i]) < n:
answer[i] = "0" * (n - len(answer[i])) + answer[i]
for j in range(n):
answer[j] = answer[j].replace("0"," ")
answer[j] = answer[j].replace("1","#")
answer[j] = answer[j].replace("2","#")
return answer
다른 사람들의 문제풀이
1. rjust 사용
- rjust : 오른쪽으로 정렬 후 공백을 메워줄 문자를 넣어준다.
파이썬 rjust, ljust, zfill
rjust 오른쪽으로 정렬하도록 도와준다. rjust를 통해 공백의 수, 공백을 메워줄 문자를 넣어준다. val = "77".rjust(5, "0") print(val) val = "77777".rjust(5, "0") print(val) val = "123".rjust(5, "a") prin..
www.crocus.co.kr
- bin(i|j) : 이진수로 바꾸는 함수에서 |(or)을 이용하여 둘 중 1이 있으면 1로 반환
- replace : 문자 하나하나로 접근하지 않고 문자열 전체에 대해서 사용 가능
def solution(n, arr1, arr2):
answer = []
for i,j in zip(arr1,arr2):
# str(bin(i|j)[2:])에서 [2:]는 0b 없애기 위한 것
a12 = str(bin(i|j)[2:])
a12=a12.rjust(n,'0')
a12=a12.replace('1','#')
a12=a12.replace('0',' ')
answer.append(a12)
return answer
2. zfill 이용
- zfill : 0을 왼쪽에 채워주는 역할
solution = lambda n, arr1, arr2: ([''.join(map(lambda x: '#' if x=='1' else ' ', "{0:b}".format(row).zfill(n))) for row in (a|b for a, b in zip(arr1, arr2))])
3. 정규식 사용
- re.sub(pattern, new_text, text) : text에서 pattern에 맞는 부분을 new_text로 대체
Python re : sub
re는 regular expression의 약자로 정규표현식을 의미합니다. Python의 re library에는 sub이라는 method가 있는데 이것은 어떠한 패턴을 내가 원하는 방식으로 대체해줍니다. 일반적인 replace 함수는 단지 어
cosmosproject.tistory.com
import re
def solution(n, arr1, arr2):
answer = ["#"]*n
for i in range(0, n):
answer[i] = str(bin(arr1[i]|arr2[i]))[2:]
answer[i] = re.sub('1', '#', '0'*(n-len(answer[i]))+answer[i])
answer[i] = re.sub('0', ' ', answer[i])
return answer
리뷰
- 십진법 -> 이진법
- format(변경 숫자, 'b')
- bin(변경할 숫자)
- 오른쪽 빈칸 채우기
- zfill
- rjust(해당 숫자, 넣을 숫자)
- replace : 문자열 전체 중 바꿀 문자만 지정!
'Coding Test > 프로그래머스(Python)' 카테고리의 다른 글
[프로그래머스] Level 1_폰켓몬 (0) | 2022.07.17 |
---|---|
[프로그래머스] Level 1_문자열 내 마음대로 정렬하기 (0) | 2022.07.15 |
[프로그래머스] Level 1_소수 만들기 (0) | 2022.07.12 |
[프로그래머스] Level 1_없는 숫자 더하기 (0) | 2022.07.09 |
[프로그래머스] Level 1_이상한 문자 만들기 (0) | 2022.07.09 |