[python] 백준 1094번 막대기
알고리즘/백준2021. 9. 16. 21:14[python] 백준 1094번 막대기

문제 요약 및 풀이 문제를 보자마자 아 그림으로 풀어야겠다 싶어서 그림으로 그려봤다. 순서는 ① -> ② -> ③ 순대로 보면 될 것 같다. 64를 반으로 나누면 32, 32 2개의 막대가 나오는데 하나의 막대는 버려야 하므로 절반으로 나누어 떨어질 때까지 문제에 있는 2가지 과정을 반복하다 보면 ②번과 같은 64 32 16 8 4 2 1 이 보여진다. 수 들의 공통점은 2^n 승이라는 것. 즉, 2진수로 표현이 가능하다. ③번과 같이 10진수로 입력을 받아 2진수로 변환을 해준후 1의 개수가 총 몇 개인지를 반환해주면 된다. 완성된 코드!!👍😊 print(bin(int(input()))[2:].count('1'))

[python] 백준 1212번 8진수 2진수
알고리즘/백준2021. 8. 26. 23:23[python] 백준 1212번 8진수 2진수

문제 요약 및 풀이 8진수를 2진수로 변환하여 출력 8진수를 10진수로 바꾸어 2진수로 변환하면 되겠다 싶어 아래와 같이 구현 입력을 받을 때 8진수로 입력받아 10진수로 변환하도록 하였다. int(input(), 8) bin메서드를 이용하면 10진수를 2진수로 변환하게 되는데 '0b'가 앞에 붙게돼서 슬라이싱을 통해 해당 문자열을 잘라 2진수 만을 출력토록 하였다. 완성된 코드!! 👍😊 octa_n = int(input(), 8) print(bin(octa_n)[2:])

[java] 백준 1252번 이진수 덧셈
알고리즘/백준2021. 8. 8. 20:03[java] 백준 1252번 이진수 덧셈

문제는 쉬워 보일 수 있다. 하지만 입력에서 각 이진수의 길이는 80을 넘지 않는다. 즉, 79자리인 입력이 들어올 경우 웬만한 자료형들은 범위를 벗어나 NumberFormat과 같은 런타임 에러가 발생할 수 있다. 여기서 써야할 클래스는 BigInteger 클래스, int, long, String으로 해보았지만 되는 것은 없었고 결론은 BigInteger 클래스였다. 나의 풀이 방법은 이렇다. 무한한 수를 담을 수 있는 BigInteger 클래스로 값을 담아서 문자열로 바꿔 준 후 문자열(2진수)을 다시 10진수로 변환시키기 위해서 BigInteger 클래스에 담아준다. 그리고 BigInteger의 add 메소드를 통해 10진수로 변환한 a와 b의 가산을 해주고 toString() 메소드로 다시 2진수..

image