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
- 42587
- pymodbus
- summerwintercoding
- 1844
- 알고리즘
- Two Pointer
- 완전탐색
- dfs
- PCCP
- python
- javascript
- Stack
- React
- 개발브로그
- 코딩테스트
- 프로그래머스
- modbus
- 좌표이동
- InfluxDB
- frontend
- typescript
- algorhtim
- set활용
- data platform
- Algorithm
- javascirpt
- configfile
- queue
- DP
- 파이썬
Archives
- Today
- Total
DM Log
[월간 코드 첼린지 시즌1] 이진 변환 반복하기 - Python / JavaScript 본문
문제 링크 - https://school.programmers.co.kr/learn/courses/30/lessons/70129
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
[문제 간단 요약]
1. 1과 0으로 이루어진 문자열에서 0을 제거한 길이를 이진수로 변경는 과정을 반복하여 문자열이 "1"이 될 때까지 제거된 "0"과 반복 횟수를 구하는 문제
[문제 해결 방안]
1. 문자열에서 '0'을 제외한 길이 구하기
2. 제외된 0의 갯수 체크
3. 길이를 2진수 만들기
4. 반복
[문제 해결 코드 - Python]
def solution(s):
answer = [0, 0]
while True:
if s == '1':
break
check_word = ''
answer[0] = answer[0] + 1
for i in s:
if i == '1':
check_word+=i
else:
answer[1] = answer[1] + 1
check_word_len = len(check_word)
binary_num = ''
while True:
binary_num += str(check_word_len % 2)
check_word_len = check_word_len // 2
if check_word_len in [0,1]:
if check_word_len == 1:
binary_num += str(check_word_len)
break
s = str(binary_num[::-1])
return answer
[코드 개선]
- '0'을 제외하는 문자열 로직 필요x s.count('1')을 통해 '1'로만 구성된 문자열의 길이를 파악
- 제외된 '0'의 갯수는 전체 s의 길이에서 s.count('1')를 제외
- 2진수 구하는 내장함수 bin을 사용
def solution(s):
a, b = 0, 0
while s != '1':
a += 1
num = s.count('1')
b += len(s) - num
s = bin(num)[2:]
return [a, b]
[문제 해결 코드 - JavaScript]
function solution(s) {
var answer = [0, 0];
while (s !== '1') {
answer[0] += 1
const word = s.split('')
const s_cnt1 = word.filter((el) => (el==='1')).length
const s_cnt0 = word.filter((el) => (el==='0')).length
answer[1] += s_cnt0
s = s_cnt1.toString(2)
}
return answer;
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[연습문제] 피보나치 수 - Python / JavaScript (0) | 2025.02.16 |
---|---|
[연습문제] 숫자의 표 - Python / JavaScript (2) | 2025.02.09 |
[스택/큐] 올바른 괄호 - Python / JavaScript (6) | 2025.02.07 |
[연습문제] JadenCase 문자열 만들기 - Python/JavaScript (2) | 2025.02.03 |
[연습문제] 최솟값 만들기 - Python/JavaScript (3) | 2025.02.02 |