코딩테스트 준비/백준 43

[백준] 1373번 2진수 8진수 - 파이썬(Python)

https://www.acmicpc.net/problem/1373 1373번: 2진수 8진수 첫째 줄에 2진수가 주어진다. 주어지는 수의 길이는 1,000,000을 넘지 않는다. www.acmicpc.net 문제 21.03.13 접근법 2진수로 입력받아 format함수를 사용해 8진수로 변환 21.03.13 코드 n=int(input(),2) print(format(n,'o')) 21.08.26 접근법 2진수를 입력받아 oct()함수를 이용해 8진수로 변환 형식을 알려주기 위해 0o~로 출력되기 때문에 2 위치부터 출력 21.08.26 코드 b=oct(int(input(),2)) print(b[2:])

[백준] 17087번 숨바꼭질 6 - 파이썬(Python)

https://www.acmicpc.net/problem/17087 17087번: 숨바꼭질 6 수빈이는 동생 N명과 숨바꼭질을 하고 있다. 수빈이는 현재 점 S에 있고, 동생은 A1, A2, ..., AN에 있다. 수빈이는 걸어서 이동을 할 수 있다. 수빈이의 위치가 X일때 걷는다면 1초 후에 X+D나 X-D로 이 www.acmicpc.net 문제 접근법 문제와 예제를 봤을 때는 최소 차이가 답인 거 같아서 최소 차이값만 찾아 제출했는데 틀렸다 나옴. 찾아보니 차의 절댓값들의 최대공약수를 구해야한다 나와있어 그렇게 우선 제출은 함. 근데 왜 최댓값을 구하는데 최소의 값을 찾고, 그 최소의 값들 중 최대공약수를 찾는 지 모르겠음... [과정] 수빈의 위치와 동생들의 위치의 차를 절댓값해서 ck배열에 저장 ..

[백준] 9613번 GCD 합 - 파이썬(Python)

https://www.acmicpc.net/problem/9613 9613번: GCD 합 첫째 줄에 테스트 케이스의 개수 t (1 ≤ t ≤ 100)이 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있다. 각 테스트 케이스는 수의 개수 n (1 n=4, 10,20,30,40 4개로 GCD 구하는 것 앞에서부터 하나씩 비교하며 GCD를 구하며 합을 누적시킴. GCD함수인 math.gcd()를 사용하였는데, 비교를 해보니 이걸 사용하나 직접 구현하나 시간은 거의 비슷함. 때문에..

[백준] 1676번 팩토리얼 0의 개수 - 파이썬(Python)

https://www.acmicpc.net/problem/1676 1676번: 팩토리얼 0의 개수 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net 문제 21.03.09 접근법 1. 팩토리얼 구하기 2. 나머지가 0이 아닐 때까지 10나누며 카운트하기 21.03.09 코드 n=int(input()) ptrial=1 while n>0: ptrial*=n n-=1 cnt=0 while ptrial%10==0: ptrial=ptrial//10 cnt+=1 print(cnt) 21.08.19 접근법 1. 팩토리얼 구하기 2. 문자열로 변경 3. 맨 뒤가 0이 아닐 때까지 찾으며 카운트하기 21.08.19 코드 N=int(input())..

[백준] 6588번 골드바흐의 추측 - 파이썬(Python)

https://www.acmicpc.net/problem/6588 6588번: 골드바흐의 추측 각 테스트 케이스에 대해서, n = a + b 형태로 출력한다. 이때, a와 b는 홀수 소수이다. 숫자와 연산자는 공백 하나로 구분되어져 있다. 만약, n을 만들 수 있는 방법이 여러 가지라면, b-a가 가장 큰 www.acmicpc.net 문제 21.03.05 접근법 입력 받으며 최댓값 찾기 최댓값까지만 소수 찾기 - 에라토스테네스의 체 사용 수가 소수들의 합인지 아닌지 판별 후, 찾으면 결과 출력 후 break와 ck=1 다 돌렸을 시, ck=0이면 소수들의 합으로 이뤄져 있지 않으므로 문구 출력 21.03.05 코드 1. 소수 판별에 list사용 제일 시간 적은 거 처음엔 dictionary를 사용했는데,..

[백준] 1929번 소수구하기 - 파이썬(Python)

https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 문제 21.03.05 접근법 에라토스테네스의 체 사용 21.03.05 코드 m,n=map(int,input().split()) prime={1:False} for i in range(2,n+1): prime[i]=True for i in range(2,int(n**0.5)+1): for j in range(i+i,n+1,i): if prime[j]==True: prime[j]=False for i in range(m,n+1): ..

[백준] 1978번 소수 찾기 - 파이썬(Python)

https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 문제 21.03.05 접근법 에라토스테네스의 체 이용 21.03.05 코드 N=int(input()) arr=list(map(int,input().split())) prime={} cnt=0 for i in range(1,1001): prime[i]=True prime[1]=False for i in range(2,int(1000**0.5)+1): if prime[i]==True: for j in range(i+i,1001,i): prime[j]=False for ..

[백준] 1934번 최소공배수 - 파이썬(Python)

https://www.acmicpc.net/problem/1934 1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있 www.acmicpc.net 문제 21.02.15 접근법 문제 그대로 최소공배수 구하면 된다. 최대공약수 구하고 각 수 곱해서 최대공약수로 나눠주기 21.02.15 코드 import sys T=int(input()) for i in range(T): a,b=map(int,sys.stdin.readline().strip().split()) aa,bb=a,b while bb!=0: aa=aa%bb aa,bb=..

[백준] 2609번 최대공약수와 최소공배수 - 파이썬(Python)

https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 문제 21.02.14 접근법 최대공약수(GCD) - 두 수를 공통으로 나눌 수 있는 수 중 제일 작은 수 [유클리드 알고리즘] a/b를 후 나머지를 a에 저장 a와 b의 값을 서로 바꾸고, 다시 a와 b를 나눔 - 나머지 나누기 b를 하기 위함 나머지가 0될 때까지 반복 - 나머지가 0이 되면 마지막으로 나누게 된 나머지가 최대공약수 최소공배수 - 두 수의 공통인 수들 중, 제일 작은 공배수 a와 b를 곱하고 최대공배수로 나눈 값이 최소 공배수 21.02.14 코..