본문 바로가기
728x90

알고리즘339

[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.
[Python] 백준 1918 후위 표기식 https://www.acmicpc.net/problem/1918 1918번: 후위 표기식 첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 알파벳 대문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의 www.acmicpc.net 문제 해결 - 하나씩 뺐을 때 문자/괄호/연산부호 분리해서 문자와 괄호,연산부호와 분리한다음 재배열을 해야한다. 어떻게 해야할까... => 문자는 그대로 출력하므로 뽑으면 바로 문자열에 이어 붙이고 괄호,연산부호는 stack 안에 넣은 후 배열 하는 것이 좋을 것이다. - 이제 순서에 대해서 고민을 해야하는데 이는 그림으로 생각을 해야지 편하다.(그림은 직접 그려보길 추천한다. 여러가지 경우가.. 2022. 12. 15.
728x90