본문 바로가기
반응형

분류 전체보기252

[백준][Python] 4134번 다음 소수 4134번: 다음 소수 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. www.acmicpc.net 코드 import math def prime(a): for i in range(2,int(math.sqrt(a))+1): if a % i == 0: return False # 소수 아님 return True num = int(input()) for i in range(num): a = int(input()) if a < 2: print(2) else: while 1: if prime(a): print(a) break a+=1 설명 math.sqrt()를 이용하여 소수인지 확인하는 범위를 해당 숫자의 제곱근으로 줄이면 시간이 단축된다. 주어진 숫.. 2022. 9. 13.
[백준][Python] 18429번 근손실 18429번: 근손실 웨이트 트레이닝을 좋아하는 어떤 대학원생은, 현재 3대 운동 중량 500의 괴력을 소유하고 있다. 다만, 하루가 지날 때마다 중량이 K만큼 감소한다. 예를 들어 K=4일 때, 3일이 지나면 중량이 488로 www.acmicpc.net 코드 n,k = map(int,input().split()) n_list = list(map(int,input().split())) visit = [False] * n cnt = 0 ans = 0 def dfs(weight): global cnt, ans if weight < 500: return if cnt == n: ans += 1 return for i in range(n): if visit[i] == False: visit[i] = True we.. 2022. 8. 8.
[백준][Python] 10974번 모든 순열 10974번: 모든 순열 N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오. www.acmicpc.net 코드 n = int(input()) visit = [False] * (n+1) s = [] def dfs(): if len(s) == n: print(*s) return for i in range(1,n+1): if visit[i] == False: s.append(i) visit[i] = True dfs() s.pop() visit[i] = False dfs() 아래 문제와 거의 똑같다. [백준][Python] 15649번 N과 M (1) 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 .. 2022. 8. 4.
[백준][Python] 1182번 부분수열의 합 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net 코드 n, s = map(int,input().split()) n_list = list(map(int,input().split())) cnt = 0 def dfs(num,sum): global cnt if num >= n: return sum += n_list[num] if sum == s: cnt += 1 dfs(num+1,sum) dfs(num+1,sum-n_list[num]) dfs(0,0) print(cnt) 설명 df.. 2022. 8. 3.
반응형