반응형

전체 글 127

[python] 4948. 베르트랑 공준

문제 잘못된 풀이 import sys while True: n = int(sys.stdin.readline()) if n == 0: # 0이면 끝 break prime_list = [] for i in range(n, 2*n): # n~2n까지의 수에서 check = 0 for j in range(2, int(i**0.5)+1): # 2 ~ 루트n if i%j == 0: # 나누어 떨어지면 소수 아님 check = 1 break if check == 0: prime_list.append(i) print(prime_list) print(len(prime_list)) 해당 문제도 주어지는 범위 내에서 소수를 구하는 문제이다. 이전 포스팅에서 소수를 다루었듯이 해당 문제도 동일한 로직으로 해결하면 된다고 생각..

[python] 1929. 소수 구하기

문제 잘못된 풀이 M, N = map(int, input().split()) prime_list = [] for i in range(M, N+1): check = 0 if i == 1: continue for j in range(2, i): if i % j == 0: # 나누어 떨어지면 소수아님 check = 1 break if check == 0: # 0이면 소수 prime_list.append(i) for i in prime_list: print(i) 해당 문제도 소수를 구하는 문제이다. 앞서 포스팅했던 두 문제 역시 '소수 구하기'에 대한 문제였기 때문에, 해당 문제도 동일한 알고리즘으로 풀고자 하였다. 해당 문제에 대한 풀이는 올바르다고 생각하지만, '시간초과' 문제로 문제풀이에 실패하였다. 아무..

[python] 2581. 소수

문제 잘못된 풀이 M = int(input()) # M 이상 N 이하의 자연수 중 소수인 것을 모두 골라 소수의 합과 최솟값을 찾음 N = int(input()) prime_list = [] for i in range(M, N+1): # M부터 N까지의 60, 100 check = 0 for j in range(2, i): if i%j == 0: # 소수가 아닐 때, check 값을 1로 만듦 check = 1 break if check == 0: # check prime_list.append(i) if len(prime_list) == 0: print("-1") else: print(sum(prime_list)) print(min(prime_list)) 해당 문제도 앞 게시글처럼 소수를 판단하는 문제이..

[python] 1978. 소수 찾기

문제 잘못된 풀이 N = int(input()) num = list(map(int, input().split())) cnt = 0 for i in num: check = 0 if i == 1: continue # 아래 코드를 실행하지 않고 건너뜀 for j in range(2, i): # 소수는 2부터 자기자신-1으로는 나누어 떨어지지 않음 if i % j != 0: # 나누어 떨어지지 않을 때, 1 -> 소수 check = 1 else: # 나누어 떨어지면 0 -> 소수 아님 check = 0 break if check == 1: cnt += 1 print(cnt) 소수는 1과 자기 자신으로만 나누어지는 수로, 약수가 2개인 수이다. 즉, 소수는 2부터 N-1까지의 수로 나누어지지 않는 수이다. 1은 ..

[python] 2839. 설탕 배달

문제 잘못된 풀이 N = int(input()) num = N//3 x_3 = [] # 3kg가 x개 있고 y_5 = [] # 5kg가 y개 있을 때 count = [] # 가방 개수구하기 if N%5==0: # 5로 나누어질 때 print(N/5) else: for i in range(1, num+1): # 1~num까지 if (N-(3*i))%5==0: y = (N-(3*i))/5 x = (N-5*y)/3 x_3.append(int(x)) y_5.append(int(y)) if len(x_3) == 0: print(-1) quit() for i in range(len(x_3)): count.append(x_3[i]+y_5[i]) print(min(count)) 내가 처음에 짠 코드는 다음과 같이 굉장..

[python] 2775. 부녀회장이 될테야

문제 잘못된 풀이 문제를 보자마자 recursive(재귀) 알고리즘이 생각났다. Recursive로 풀어보고자 했는데, 실패했다. 올바른 풀이 T = int(input()) for i in range(T): k = int(input()) # 층 n = int(input()) # 호 floor_0 = [i for i in range(1, n+1)] # 0층 사람 수 for j in range(k): for p in range(1, n): floor_0[p] += floor_0[p-1] print(floor_0[-1]) # 0번 인덱스부터 시작하기 때문에 -1 Recursive가 아닌 풀이 방법을 모색했다. 0층을 기준으로 1호는 1명, 2호는 2명, 3호는 3명 ... i호는 i명의 사람이 있음을 나타내는..

728x90
반응형