1. 이진 변환 반복하기
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
0과 1로 이루어진 어떤 문자열 x에 대한 이진 변환을 다음과 같이 정의합니다.
x의 모든 0을 제거합니다.x의 길이를 c라고 하면, x를 "c를 2진법으로 표현한 문자열"로 바꿉니다.
예를 들어, x = "0111010"이라면, x에 이진 변환을 가하면 x = "0111010" -> "1111" -> "100" 이 됩니다.
0과 1로 이루어진 문자열 s가 매개변수로 주어집니다. s가 "1"이 될 때까지 계속해서 s에 이진 변환을 가했을 때, 이진 변환의 횟수와 변환 과정에서 제거된 모든 0의 개수를 각각 배열에 담아 return 하도록 solution 함수를 완성해주세요.
def solutions(s):
cnt, zeros = 0, 0
while s != '1':
zeros += s.count('0')
s = s.replace('0','')
s = bin(len(s))[2:]
cnt += 1
return [cnt,zeros]
Note: 내장함수 bin 활용
2. 숫자의 표현
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 수 있습니다.
1 + 2 + 3 + 4 + 5 = 154 + 5 + 6 = 157 + 8 = 1515 = 15
자연수 n이 매개변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution를 완성해주세요.
def solution(n):
cnt = 0
for i in range(1,n+1):
temp = 0
while i <= n and temp <= n:
temp += i
i += 1
if temp == n:
cnt += 1
return cnt
Note: 변수 이름 설정을 잘 하자
'코딩테스트' 카테고리의 다른 글
24/11/27 Python (0) | 2024.11.28 |
---|---|
24/11/21 SQL (0) | 2024.11.21 |
24/11/20 Python (0) | 2024.11.20 |