반응형 백준397 (Python/🥉2)백준 알고리즘 2798번: 블랙잭 문제 출처:https://www.acmicpc.net/step/22 브루트 포스 단계 체스판을 만드는 모든 경우를 시도하여 최적의 방법을 찾는 문제 www.acmicpc.net 풀이: N,M = map(int,(input().split())) # N 카드의개수 M 넘지 말아야할 수 jack = list(map(int,input().split())) # 카드 숫자 리스트로 만들어둠 res = 0 # 결과값 for i in range(N): # 1번째 카드 for j in range(i+1,N): # 2번쨰 카드 for k in range(j+1,N): # 3번째 카드 if jack[i]+jack[j]+jack[k] > M: # 1,2,3 카드 합이 500넘으면 continue # 그냥 지나가고 else: .. 2022. 5. 20. (Python/🥈1)백준 알고리즘 11729번: 하노이 탑 이동 순서 문제 출처:https://www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net 알고리즘의 벽이라고 불리는 하노이의 탑문제이다.. n = 2 인 경우에는 1+2 =3 n = 3 인 경우에는 1+2+4 = 7 n = 4 인 경우에는 1+2+4+8 = 15 총 이동횟수는 2^n - 1 이다 이런식으로 옮긴횟수 공식은 쉽게 찾았지만 수행 과정 출력하는것에 애를 먹었다. 풀이: def hanoi(N,i,j,via): # if N == 1: print(i,j) .. 2022. 5. 19. (Python/🥈1)백준 알고리즘 2447번: 별 찍기 - 10 문제 출처:https://www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net 풀이: def stars(n): array = [] for i in range(3*len(n)): if i//len(n) ==1: # 몫이 1일때 가운데 3*3 부분 array.append(n[i%len(n)] + " " * len(n) + n[i%len(n)]) # i 2일때 else: # 나머지가 1일때 array.append(n[i%len(n)] * 3 .. 2022. 5. 19. (Python)재귀함수 재귀함수 재귀함수는 정의 단계에서 자신을 재참조하는 함수를 뜻한다. 내부적으로 반복하다, 일정한조건을 만족하면 함수를 이탈하여 결과를 도출한다. 문제 풀이에서 DFS를 구현하는 가장 기본적인 방법으로 널리 사용되므로 잘 알아야 하고 쉽게 벽을 느낄수 있다. 재귀의특성 - 재귀는 같은 일을 하는 함수끼리 상태만 달리하여 호출한다. - 무슨 일을 했는지는 중요하지 않다. - 재귀호출이 무한히 발생할수 있다. (점화식) def recursive(): print("이것은 재귀함수입니다.") recursive() recursive() #함수 호출 이렇게 되면 무한히 출력된다. def recursive(count): if count == 0: return print("이것은 재귀함수입니다.") count -= 1 .. 2022. 5. 19. (Python/🥉3)백준 알고리즘 10872번: 팩토리얼 문제 출처:https://www.acmicpc.net/problem/10872 10872번: 팩토리얼 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. www.acmicpc.net 풀이: N = int(input()) list = list() a= 1 for i in range(1,N+1): list.append(a) a +=1 result = 1 for i in range(1,len(list)+1): result *= i print(result) 나는 리스트를 만들어 리스트에서 하나씩 빼와서 곱하기를 했다. 근데 다른 분의 소스를 보니 d=1 for i in range(1,int(input())): d*=i+1 print(d) 너무 간단해졌다.. 다음부턴 좀더 생각.. 2022. 5. 17. (Python/🥈1)백준 알고리즘 9020번: 골드바흐의 추측 문제 출처:https://www.acmicpc.net/problem/9020 9020번: 골드바흐의 추측 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아 www.acmicpc.net 잘못된 풀이: array = list() for i in range(2,10000): count = 0 for j in range(2,i): if i % j == 0: count += 1 break if count == 0: array.append(i) T=int(input()) for i in range(T): n = int(input()) a = int(n//2).. 2022. 5. 17. 이전 1 ··· 61 62 63 64 65 66 67 다음 반응형