js/[문제풀이] programmers
[python] 정수의 연산 횟수 구하기_Binary Number
우금붕
2022. 12. 27. 13:36
[문제 설명]
문자열 S는 2진수로 표현된 양의 정수입니다.
해당 정수에 아래의 연산을 수행합니다.
만약 숫자가 짝수인 경우 해당 값의 2를 나눈다.
만약 숫자가 홀수인 경우 1을 뺀다.
연산의 결과가 0이 될때까지 반복해서 수행했을 때 수행된 연산 횟수 N을 구하는 함수를 작성하세요.
[입력]
2진수가 표현된 String S
[출력]
결과가 0이 될때까지 수행한 연산 횟수 N
[풀이]
def solution(S):
s = int(S, 2)
cnt = 0
while s != 0:
if s%2 == 0:
s = s/2
cnt += 1
else:
s -= 1
cnt+=1
return cnt
[해설]
2진수로 입력된 s를 10진수로 변경한다.
s가 0이 아닐 경우 계속 연산을 진행한다.
1. 만약 s가 2로 나누어 떨어지면 (짝수면) s를 2로 나누고 카운트를 올려준다.
2. 만약 s가 2로 나누어 떨어지지 않으면 (홀수면) s에 1을 빼주고 카운트를 올려준다.
[느낀점]
크게 어려운 문제는 아니었으나 코드를 간결하게 작성할 수 있는 방법을 생각해봐야겠다.
[github] - sol2