Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- PYTHON
- 백준
- Baekjoon
- SW Expert Academy
- 프로그래머스 파이썬
- Kaggle
- 프로그래머스
- 우분투
- 편스토랑 우승상품
- ubuntu
- 편스토랑
- 코로나19
- Real or Not? NLP with Disaster Tweets
- Git
- 자연어처리
- leetcode
- gs25
- 파이썬
- 더현대서울 맛집
- programmers
- 데이콘
- 캐치카페
- 금융문자분석경진대회
- 맥북
- hackerrank
- ChatGPT
- dacon
- AI 경진대회
- Docker
- github
Archives
- Today
- Total
솜씨좋은장씨
[Programmers] 이진변환 반복하기 (Python) 본문
728x90
반응형
코딩 1일 1문제!
오늘의 문제는 프로그래머스의 이진변환 반복하기 입니다.
Solution
def solution(x):
answer = []
cnt = 0
zero = 0
while True:
if x == '1':
break
zero = zero + x.count("0")
x = x.replace("0", "")
x = bin(len(x))[2:]
cnt = cnt + 1
answer = [cnt, zero]
return answer
Solution 풀이
먼저 삭제한 0의 개수를 저장할 zero라는 변수명과 이진변환을 수행한 횟수를 나타낼 cnt 변수 두개를 선언합니다.
while 반복문을 도는데 x가 '1' 이 되면 멈추는 조건을 넣었습니다. ( while x != '1': ) 도 가능
먼저 x에서 x.count('0')를 통해 0의 개수를 구하여 zero에 더해주고
x.replace("0", "")을 통하여 x에서 0을 모두 지워줍니다. 그 다음 x의 길이를 이진수로 변환한 문자열을 다시 x에 넣어줍니다.
x가 '1' 이 되는 순간 다음 이진변환을 계속 실행했던 반복문을 중단하고 answer 리스트에 cnt와 zero를 넣어준 후
return 합니다.
'Programming > 코딩 1일 1문제' 카테고리의 다른 글
[Programmers] 2018 KAKAO BLIND RECRUITMENT [3차] 파일명 정렬 (Python) (0) | 2021.03.07 |
---|---|
[Programmers] 3진법 뒤집기 (Python) (0) | 2021.03.01 |
[Programmers] 콜라츠 추측 (Python) (0) | 2021.02.22 |
[Programmers] 같은 숫자는 싫어 (Python) (0) | 2021.02.21 |
[Programmers] 문자열 내 마음대로 정렬하기 (Python) (0) | 2021.02.14 |
Comments