본문 바로가기

Algorithm17

순열 만들기 - {1, 2, 3} 을 포함하는 모든 순열을 출력하라 # 반복문 활용 for i1 in range(1, 4): for i2 in range(1, 4): if i2 != i1: for i3 in range(1, 4): if i3 != i1 and i3 != i2: print(i1, i2, i3) 2021. 8. 10.
Baby-gin Game Baby gin game - 0 ~ 9 사이의 숫자 카드에서 임의의 카드 여섯 장을 뽑았을 때, 3장의 카드가 연속적인 번호를 갖는 경우를 run 이라고 하고, 3장의 카드가 동일한 번호를 갖는 경우를 triplet 이라고 한다. 이 때, 6장의 카드가 run과 triplet 으로만 구성된 경우를 baby-gin 이라고 한다. - 6자리의 숫자를 입력 받아 baby-gin 여부를 판단하는 코드를 작성해보자 # greedy 로 접근 cards = [6, 6, 6, 6, 8, 9] # counts 배열 만들기 counts = [0] * 12 # run 을 확인하기 위한 조건에서 IndexError 를 방지하기 위해 리스트의 우측에 0값 2개를 패딩 for card in cards: counts[card] +.. 2021. 8. 10.
최댓값 알고리즘 - 2이상의 길이를 가진, 숫자로만 구성된 리스트가 있을 때 최댓값을 산출하는 알고리즘을 알아보자. # 최댓값 구하기 알고리즘 # 임의의 리스트 생성 numbers = [3, 1, 2, 5, 4] # max_value 초기화 max_val = numbers[0] # 반복문을 통해 max value 산출 for i in range(1, len(numbers)): if max_val < numbers[i]: max_val = numbers[i] # 리스트의 최댓값 출력 print(max_val) - 그렇다면, 최댓값이 아니라 최댓값의 인덱스를 구하는 알고리즘은? # 최대값의 인덱스 구하기 # 임의의 리스트 생성 numbers = [3, 1, 2, 5, 4] # max_idx 초기화 max_val = 0 # .. 2021. 8. 9.
피타고라스의 정리 주어진 조건(x < y < z < 50) 내에서 피타고라스 방정식의 해를 찾으세요. [출력 예시] [(3, 4, 5), (5, 12, 13), (6, 8, 10), (7, 24, 25), (8, 15, 17), (9, 12, 15), (9, 40, 41), (10, 24, 26), (12, 16, 20), (12, 35, 37), (15, 20, 25), (15, 36, 39), (16, 30, 34), (18, 24, 30), (20, 21, 29), (21, 28, 35), (24, 32, 40), (27, 36, 45)] # 반복문 활용 result = [] # z범위 설정, 회문 for z in range(1, 50): # z보다 작도록 범위 설정 for y in range(1, z): # y보다.. 2021. 8. 1.