일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- Birthday paradox
- 생일문제
- structured_array
- 딱다구리과
- Python
- ADsP
- 흰날개해오라기
- python3
- 한국의 새
- 솔딱새과
- 맑은소리 스피치학원
- 오리과
- 가마우지과
- keras
- AI전략게임
- AI역량평가
- 계수정렬
- IBK기업은행 인턴
- 한국의새
- 딥러닝 공부
- 비둘기과
- 참새목
- 기러기목
- 딥러닝공부
- django
- 비둘기목
- 직박구리과
- 백로과
- 참새과
- SimpleCraft
- Today
- Total
목록프로그래밍 (91)
진박사의 일상
문제 : 서로 다른 두 사람이 각각 다른 무게의 볼링공을 고르는 경우의 수를 고르시오. (단, 볼링공은 N개가 있으며 공의 무게는 1~M이며 중복된 무게의 공은 존재할 수 있다.) n, m = [int(i) for i in input().split()] weights = [int(i) for i in input().split()] weights.sort() result = 0 for i in range(n-1): result += [weights[i] != w for w in weights[i:]].count(True) print(result) list comprehension을 적절하게 써서 지금까지 중 가장 빠르고 쉽게 풀었던 것 같음. 근데 m은 쓰는 일 없는 것 같은데 왜 주어진거지...?
문제 : N개의 각기 다른 단위의 동전들(중복 가능)로 만들 수 없는 최소의 금액을 찾으시오 n = int(input()) data = list(map(int, input().split())) data.sort() data = data[::-1] result = 1 while True: if result in data: result += 1 continue else: tmp = result for i in range(len(data)): tmp -= data[i] #print(tmp) if tmp == 0: break elif tmp < 0: tmp += data[i] #print(result, tmp) if tmp != 0: break result += 1 print(result) 오케이
문제 : 0과 1로 된 문자열에서 연속된 숫자를 뒤집어 같은 숫자로 만들기 실패) line = [int(i) for i in list(input())] index_list = [] gini = 1.0 - line.count(0)/len(line) * line.count(1)/len(line) result = 0 while gini != 1.0: index = [0,0] for i in range(len(line)-1): if line[i] == line[i + 1]: index[1] += 1 else: index_list.append(index) index = [i+1,i+1] index_list.append(index) print(index_list) index = min(index_list, key=..
문제 : 주어진 숫자 문자열을 각 자리수를 사칙연산 우선순위를 무시하고 왼쪽부터 + 또는 *를 써서 최대가 되는 숫자를 찾기 line = list(map(int, list(input()))) print(line) result = 0 if len(line) == 1: result = line[0] else: result = line[0] for i in range(len(line)-1): if result + line[i+1] >= result * line[i+1]: result = result + line[i+1] else: result = result * line[i+1] print(result) 정석적으로 풀긴 했지만 해답이 더 깔끔한듯.
문제 : 공포도가 N인 모험가는 N명 이상의 모험가 그룹에 참여해야 모험을 떠날 수 있다. N명의 공포도가 주어졌을 때 최대로 떠날 수 있는 모험가 그룹의 수를 구하시오. 입력조건 : 첫째줄은 N(1~100000), 둘째줄은 공포수(자연수) 공백 구분 n = int(input()) fear = list(map(int, input().split())) g_num = 0 fear.sort() fear = fear[::-1] group = [] while fear: if not group: #그룹이 비어있으면 group.append(fear.pop()) if max(group) > len(group): # 최대 공포수가 그룹 인원수보다 클 때 group.append(fear.pop()) else: #최대 공포..
list to string에 사용되는 join 함수가 for-loop보다 얼마나 빠를까 테스트를 해보았다. import time import random str_len = 100 #100자리 랜덤 문자열 str_pool = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" result = [] for_sum = 0.0 join_sum = 0.0 for i in range(str_len): result.append(random.choice(str_pool)) for i in range(100): for i in range(str_len): result.append(random.choice(str_pool)) new_result = "" start = time..