1252번 문제는 이진수의 덧셈이다. 이진수 두 개를 더해 그 결과의 이진수를 출력하면 된다.
이진화 시키고 더하는 대신 두 수를 정수(십진수)로 받아 더한 뒤 그걸 이진화 bin()한다.
이때, 그냥 bin 함수만 쓰면 1b0010 이런식으로 ob+2진수변환수로 뜬다.
ob를 제거하기 위해 [2:]를 해주자.
귀찮다면 format(num, 'b')를 써주자. (b는 2진수를 의미)
근데 코테에서는 내장함수를 사용하지 않고 직접 구현하라는 문제도 나온대서 내장함수 없이 구현 연습도
해봐야할 것같다. 문제 풀기전에 뭐풀지 하면서 이 글을 보는 미래의 나야 3460번 이진수 문제 풀어보거라.
참고로 내장함수를 아예 사용하지 않는 경우의 알고리즘을 조사해보았다.
def func(n, ans_list):
num1 = 십진수 // 2 <= 2로 나눈 몫
num2 = 십진수 % 2 <= 2로 나눈 나머지
ans_list.append(num2) <= num2 모임
if num1 == 0:
return ans_list
else:
return func(num1, ans_list)
ans_list = []
ans = func(int(input()), ans_list)
ans.sort(reverse=True)
return "".join([str(_) for _ in answer])
위 코드는 아래 티스토리를 보고 정리했따. 감사합니다.
출처 : https://minnit-develop.tistory.com/17
'공부 > 백준' 카테고리의 다른 글
[백준] 10773 (0) | 2022.06.15 |
---|---|
[백준] 2012번 (0) | 2022.06.15 |
[백준] 2417번 (0) | 2022.06.15 |
[백준] 17478번 (0) | 2022.06.15 |
[백준] 17298번 (0) | 2022.06.15 |