본문 바로가기
728x90

분류 전체보기423

[Python] 백준 2089 -2진수 https://www.acmicpc.net/problem/2089 2089번: -2진수 -2진법은 부호 없는 2진수로 표현이 된다. 2진법에서는 20, 21, 22, 23이 표현 되지만 -2진법에서는 (-2)0 = 1, (-2)1 = -2, (-2)2 = 4, (-2)3 = -8을 표현한다. 10진수로 1부터 표현하자면 1, 110, 111, 100, 101, 11010, 110 www.acmicpc.net 문제 해결 n이 주어졌을 때 n을 -2로 계속 나누어서 정답을 알아낼 수 있다. ex) n = -13 -13 = (-2)*7 + 1 7 = (-2)*(-3) +1 -3 = (-2)*2 +1 2 = (-2)*(-1) + 0 -1 = (-2)*1 + 1 1 = (-2)*0 + 1 => 110111 몫이 .. 2022. 12. 20.
[Python] 백준 1373 2진수 8진수 https://www.acmicpc.net/problem/1373 1373번: 2진수 8진수 첫째 줄에 2진수가 주어진다. 주어지는 수의 길이는 1,000,000을 넘지 않는다. www.acmicpc.net 문제 해결 - 2진수를 10진수로 바꾸고 8진수로 바꿀려고 했는데 시간초과가 떴다. -2진수를 8진수로 바로 바꿀 수 있는가? => Yes! int(input(),2) 면 이진수로 숫자를 받는다는 의미이고 oct()을 쓰면 0o(8진수)가 나온다. CODE import sys input = sys.stdin.readline print(oct(int(input(),2))[2:]) # 앞에 두개는 0o (8진수 나타내는 표시) 2022. 12. 19.
[Python] 백준 11655 ROT13 https://www.acmicpc.net/problem/11655 11655번: ROT13 첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다. www.acmicpc.net 문제 해결 - 매우 쉬운 문제이다. - 사실 리스트 하나 만들고 ['A', 'B', ....] 해놓은 다음 나누기를 해도 되지만 ord(), chr()를 써서 메모리도 깔끔하게 쓰고 함수로 깔끔하게 푸는 것이 베스트이다. (ord()와 chr()을 써볼 수 있는 기회) CODE import sys input = sys.stdin.readline S = str(input().rstrip()) ans = '' for spell in S: if spell.isupper().. 2022. 12. 16.
[Python] 백준 10820 문자열 분석 https://www.acmicpc.net/problem/10820 10820번: 문자열 분석 문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있 www.acmicpc.net 문제 해결 사실 매우 쉬운 문제 소문자(l), 대문자(u),숫자(n), 띄어쓰기(b)를 각각 0으로 놔둔다음 islower(), isupper(), isdigit(), ' '(else) 조건문을 쓰면 끝이다. 그런데 문제는 어떻게 끝내냐가 첫 번째 문제인데 두가지가 있다. (1. try~ except EOFError 2. if not s:break로 끊을 수 있다.) 그리고 sys.stdin... 2022. 12. 16.
728x90