본문 바로가기
728x90

알고리즘316

[Python] 백준 2745 진법 변환 https://www.acmicpc.net/problem/2745 2745번: 진법 변환 B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 www.acmicpc.net 문제 해결 - B 진법을 10진법으로 바꾸는 과정은 간단하다. (중고등학교때 많이 배운다.) ※예시 $102_{13} = 1 \times 13^2 + 0 \times 13 + 2 \times 13^0 = 169+2 = 171 $ - 따라서 위아 같은 식의 전개가 나오도록 코드를 작성하면 된다. CODE import sys input = sys.stdin.readline n, b = input().s.. 2022. 12. 21.
[Python] 백준 4195 친구 네트워크 https://www.acmicpc.net/problem/4195 4195번: 친구 네트워크 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스의 첫째 줄에는 친구 관계의 수 F가 주어지며, 이 값은 100,000을 넘지 않는다. 다음 F개의 줄에는 친구 관계가 생긴 순서대로 주어진 www.acmicpc.net 문제 풀이 - union find 문제이다. => 이에 대한 함수식을 쓰지 못하면 풀기 힘들다. (union find 문제라는 것은 알았는데 한동안 안풀면 까먹기 일상이다.) - 리스트를 이용하기보다(부모, 자식 모두 string name이 있어서 리스트로 index를 찾기는 너무 시간복잡도가 클 것 같다.) 딕셔너리(dict)을 이용하여 dict['name']= parents['nam.. 2022. 12. 21.
[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] 백준 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.
728x90