일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- AI전략게임
- 참새목
- ADsP
- 비둘기목
- Python
- 딱다구리과
- 직박구리과
- 비둘기과
- 솔딱새과
- 흰날개해오라기
- 계수정렬
- 딥러닝 공부
- 한국의새
- AI역량평가
- 한국의 새
- 참새과
- 오리과
- SimpleCraft
- 맑은소리 스피치학원
- 생일문제
- 백로과
- 가마우지과
- python3
- keras
- structured_array
- IBK기업은행 인턴
- 딥러닝공부
- Birthday paradox
- 기러기목
- django
- Today
- Total
목록프로그래밍/코딩테스트 공부 (26)
진박사의 일상
문제 : N명의 사람과 체육복을 잃어버린 사람 리스트(lost), 여벌 체육복을 가져온 사람 리스트(reserve)를 받아와 최대로 체육 수업을 들을 수 있는 최대 사람 수를 구하라( 단, 체육복이 있어야 수업이 가능하고 잃어버린 사람은 앞이나 뒷 사람이 여벌 체육복을 가져왔다면 빌릴 수 있다. 단 여벌 체육복을 가져온 사람도 체육복을 잃어버렸으면 빌려줄 수 없다) def solution(n, lost, reserve): answer = 0 try: for i in range(n): if i+1 in lost and i+1 not in reserve: #잃어버렸을 시 if i in reserve and i not in lost: #앞에 가지고 있을 때 answer += 1 reserve.remove(i)..
문제 : 1~N까지의 각기 양이 다른 음식을 1초마다 순서대로 돌아가며 먹을 때 K초 후에 먹게 될 음식의 번호는? (단, 다 먹으면 남아있는 다음 음식으로 넘어감, K초 전에 다 먹으면 -1) def solution(food_times, k): n = len(food_times) index = 0 if sum(food_times)
문제 : 서로 다른 두 사람이 각각 다른 무게의 볼링공을 고르는 경우의 수를 고르시오. (단, 볼링공은 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) 정석적으로 풀긴 했지만 해답이 더 깔끔한듯.