250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
Tags
- 내일배움캠프
- Display
- Level1
- 가상환경
- 알고리즘
- 그로스해킹
- WIL
- itertools
- position
- 데이터리안
- 데벨챌
- A태그
- 함수실행시간
- vscode
- googlesheet
- cte
- 데이터넥스트레벨챌린지
- with\
- time()
- googleappscript
- 함수성능평가
- iterable
- Iterator
- python
- git #github #내일배움캠프
- 우선순위
- AI 5기
- gitignore
- 프로그래머스
- venv
Archives
- Today
- Total
05의 개발 계발
[페어프로그래밍] 230501 비밀지도 | bin Zfill 본문
728x90
페어프로그래밍 결과 코드
# 페어프로그래밍으로 제작한 코드
def solution(n, arr1, arr2):
answer = []
# 정수를 이진수로 만들고 리스트에 넣기
arr1_ = []
arr2_ = []
# 리스트의 인덱스를 돌면서 2진수로 만들고 리스트에 append (x,y)
for i in range(n):
# ['1001', '10100', '11100', '10010', '1011']-> zfill ['01001', '10100', '11100', '10010', '01011']
arr1_.append(bin(arr1[i])[2:].zfill(n))
# ['11110', '1', '10101', '10001', '11100']-> zfill ['11110', '00001', '10101', '10001', '11100']
arr2_.append(bin(arr2[i])[2:].zfill(n))
Map = ''
# 2진수로 변환한 리스트의 요소에 1이 있으면 벽이 있다 => #
# 이외는 빈 ''로 처리
for j in range(n):
if arr1_[i][j] == '1' or arr2_[i][j] == '1':
Map += '#'
# i : 0~n-1
# j : 0~n-1
else:
Map += ' '
answer.append(Map)
return answer
리팩토링 코드
# 리팩토링 | 다중할당 변수명수정
def solution(n, arr1, arr2):
answer,arr1_,arr2_ = [],[],[]
for i in range(n):
arr1_.append(bin(arr1[i])[2:].zfill(n))
arr2_.append(bin(arr2[i])[2:].zfill(n))
map_ = ''
for j in range(n):
if arr1_[i][j] == '1' or arr2_[i][j] == '1':
map_ += '#'
else:
map_ += ' '
answer.append(map_)
return answer
흠터레스팅 코드
# 비트연산자 zip rjust replace
def solution(n, arr1, arr2):
answer = []
for i,j in zip(arr1,arr2):
a12 = str(bin(i|j)[2:])
a12=a12.rjust(n,'0')
a12=a12.replace('1','#')
a12=a12.replace('0',' ')
answer.append(a12)
return answer
시사점 or 새로이 알게된 점
문자열의 자릿수를 맞추는 방법
<str>.zfill(n) → 자릿수를 n으로 맞추며 부족한 부분을 0(zero)으로 채워준다. ex) '15'.zfill(4) → '0015'
<str>.rjust(n,'x') → 자릿수를 n으로 맞추며 부족한 부분을 x로 채워준다. ex) '15'.rjust(4,'0') → '0015'
728x90
'내일배움캠프 AI > 페어프로그래밍' 카테고리의 다른 글
[페어프로그래밍] 230503 둘만의 암호 (0) | 2023.05.03 |
---|---|
[페어프로그래밍] 230502 3진법 뒤집기 | divmod int (3) | 2023.05.02 |
[페어프로그래밍] 230428 옹알이(1) | count (0) | 2023.04.28 |
[페어프로그래밍] 230428 모스부호(1) | .split (0) | 2023.04.28 |
[페어프로그래밍] 230426 피보나치 수 | 다중할당 for (1) | 2023.04.27 |