본문 바로가기

코딩테스트 파이썬/수학4

2745 진법변환 파이썬 문제 B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다. A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35 입력 첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36) B진법 수 N을 10진법으로 바꾸면, 항상 10억보다 작거나 같다. 출력 첫째 줄에 B진법 수 N을 10진법으로 출력한다. n진수를 10진수로 나타내는 방법이다. int의 사용법을 찾아서 이 경우에 한해서 int(string, 진수)로 굉장히 쉽게 해결가능했다. import sys input=sys.stdin.readline N,B=input().split() .. 2021. 9. 6.
22864 피로도 파이썬 문제 하루에 한 시간 단위로 일을 하거나 일을 쉬어도 된다. 하루에 한 시간 일하면 피로도는 A$A$ 만큼 쌓이고 일은 B$B$ 만큼 처리할 수 있다. 만약에 한 시간을 쉰다면 피로도는 C$C$ 만큼 줄어든다. 단, 피로도는 절대 0보다 작아질 수 없다. 당연히 일을 하지 않고 쉬었기 때문에 처리한 일은 없다. 피로도를 최대한 M$M$ 을 넘지 않게 일을 하려고 한다. M$M$ 를 넘기면 일하는데 번아웃이 와서 이미 했던 일들도 다 던져버리고 일을 그만두게 된다. 번아웃이 되지 않도록 일을 할때 하루에 최대 얼마나 일을 할 수 있는지 구해보자. 입력 첫 번째 줄에 A$A$, B$B$, C$C$, M$M$이 공백으로 구분되어 주어진다. (하루는 24시간이다.) 맨 처음 피로도는 0이다. 출력 하루에 번 아.. 2021. 9. 6.
5618 공약수 문제 자연수 n개가 주어진다. 이 자연수의 공약수를 모두 구하는 프로그램을 작성하시오. 입력 첫째 줄에 n이 주어진다. n은 2 또는 3이다. 둘째 줄에는 공약수를 구해야 하는 자연수 n개가 주어진다. 모든 자연수는 108 이하이다. 출력 입력으로 주어진 n개 수의 공약수를 한 줄에 하나씩 증가하는 순서대로 출력한다. 공약수를 구하는 문제. 막히는 부분이 많아 참고를 했다. 출처:https://pacific-ocean.tistory.com/177 공약수는 최대공약수의 약수이다. 그리고 최대공약수는 GCD로 유클리드 호제법을 이용하는게 빨랐다. 유클리드 호제법이란 a,b의 최대공약수는 a를 b로 나눈 나머지와 b의 최대공약수와 같다는 법칙이다. 이 때 b를 a로, 나머지를 b로 옮기고 b가 0이 될때까지 .. 2021. 9. 3.
소수 판별 출처: 동빈북 이것이 취업을 위한 코딩테스트다 with 파이썬 소수의 판별 소수: 2보다 큰 자연수 중에서 1과 자기자신을 제외한 자연수로는 나누어 떨어지지 않는 자연수 import math def is_prime_number(x): #2부터 제곱근까지 검사 for i in range(2,int(math.sqrt(x))+1): if x%i ==0: return False # 소수가 아님 return True #소수임 에라토스테네스의 체 1. 2부터 N까지 모든 자연수를 나열 2. 남은 수 중에서 아직 처리하지 않은 작은 작은 수 i를 찾는다. 3. 남은 수 중에서 i를 제외한 배수를 제거. 4. 반복할 수 없을 때까지 반복 시간복잡도는 (NloglogN) 이므로 100만까지 사용하기가 좋다. 메모리가 많.. 2021. 9. 2.