일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 다이어트
- 코테 공부
- PT 운동
- 하체운동
- pip install
- 바프준비
- 건강
- 덤벨운동
- 영화 비평
- 디버깅
- 연구 시작
- 논문 리뷰
- 코드
- 암풀다운
- 데드리프트
- 개인 PT
- 바디프로필
- 티스토리챌린지
- 프로그래머스
- 코테준비
- 체스트프레스
- 운동
- 개인 피티
- github
- 개발자
- 코딩테스트
- 오블완
- 개인 운동
- Knowledge Tracing
- pytorch
- Today
- Total
목록인공지능 대학원생의 생활/동료 코드 따라잡기 (17)
치즈의 AI 녹이기
이 문제는 정확성과 효율성을 둘 다 평가하는 문제였다. 생각보다 금방 풀어서 제출했는데, 정확성은 100% 정답, 효율성은 66.6% 정답.. 아쉬운 결과 해당 결과의 풀이는 아래와 같다. def solution(gems): # 결국엔 배열 끝까지 탐색해보아야 함. gem_num = len(set(gems)) gem_index = dict() # 등장한 가장 나중 인덱스를 저장함. # gem_set = set() answer = [] min_len, min_index, max_index = 1000000, len(gems), 0 for index, gem in enumerate(gems): #보석 인덱스 업데이트 gem_index[gem] = index+1 # print(gem_index, gem_set..
배열 인덱싱이 헬이었던 문제.. 결국은 해냈다! 처음에 제출했을 때 all pass가 안떠서 90도 회전했을 때, i=3, j=3 위치에서 정확히 true가 뜨는지 디버깅 해보았더니, 엉뚱한 곳에서 true를 계산해 출력하는 것을 확인했다. 따라서 위와 같은 조건을 만족할 때 true가 뜰때까지 디버깅한 결과, 해결되었다. array[x:y][x:y] -> numpy를 쓰지 않다보니 이런식으로 인덱싱하는 것을 피할 수 있는 다른 방법을 고안했고, key 배열을 각도만큼 회전시킬때, list(zip(*array[::-1]))를 활용한다는 점, 완벽히 배열을 깊게 복사하려면, copy.deepcopy(array) 를 써야 하는 것도 검색을 통해 배웠다. import copy def make_big(n, lo..
다음과 같은 순서로 차례대로 함수를 정의하여 구현하였다. 1. 입차 출차에 따라 시간 계산 2. 계산된 시간에 대하여 요금 부여 import math def calcul_time(in_time, out_time): in_hour, in_min = int(in_time.split(":")[0]), int(in_time.split(":")[1]) out_hour, out_min = int(out_time.split(":")[0]), int(out_time.split(":")[1]) if out_min - in_min < 0: sub_hour = out_hour-in_hour-1 sub_min = out_min + 60 - in_min else: sub_hour = out_hour-in_hour sub_min..
다른 사람의 풀이를 보아하니, 많이 헤매다가 답을 찾은 느낌이었다. 나 또한 테스트 케이스는 다 통과했는데, 정작 코드 제출하니 다 실패하는 경우가 있었고, 결국에는 해답을 보며 한 줄 씩 해석해보았다.. 쉽지 않았던 문제; 언제나 '막상 내가 혼자 풀면 이런 발상을 할 수 있을까?'가 제일 고민이 되는데 많이 경험할수록 나아질 것이라고 생각한다. 화이팅! from collections import deque def solution(cap, n, deliveries, pickups): # 1,2,3번째 집 먼저 해결하고, 4, 5번째 집 나중에 가면 안되나? # 이 예시에서는 괜찮아도, 다른 예시에서는 안될 수 있음. # 결국 가장 먼 집부터 배달 수거하는 게 이득.-> greedy 문제 # 배달과 수거..
문제에 대한 생각 흐름 정리는 다음과 같다. 1. 완전 탐색 시간은 최대 얼마나 걸리는가? 적용할 수 있는 할인율은 10%, 20%, 30%, 40% 4가지이고, 이모티콘은 최대 7개까지 주어지므로 4^7개의 계산 결과 중 최소값을 찾으면 되겠다. 그럼 모든 경우의 수에 대한 배열을 생성하기 위한 함수는 어떤 것을 활용하면 좋을까? itertools.product(*2d list)를 활용. https://www.geeksforgeeks.org/python-all-possible-permutations-of-n-lists/ Python | All possible permutations of N lists - GeeksforGeeks A Computer Science portal for geeks. It c..
3. 광물캐기 처음에는 무조건 다이아몬드>철>돌 곡괭이 순으로 선택해서 해결하면 되지 않을까..? 라고 생각했다. 그런데 생각해보면, 돌을 캐기 위해 다이아몬드 곡괭이를 쓰는 것은 낭비가 될 것이고, 다이아몬드를 캐기위해 돌 곡괭이를 쓰는 것은 큰 손실이 될 것이다. 이 문제는 한 번 곡괭이를 선택하면 광물을 순서대로 5개씩 캐야 하므로, '5개씩 묶인 광물 청크를 어떤 곡괭이를 써야 피로도가 최적이 되는지를 선택' 하는 문제라고 볼 수 있다. 1. 광물 배열을 5개씩 쪼개어 다이아몬드, 철, 돌 광물이 많은 순으로 정렬 2. 다이아몬드>철>돌 곡괭이 순으로 사용. 해당 풀이는 왠지 모르게 최종 제출 시 한 문제를 통과하지 못하고 있음. 일단 패스! from collections import deque,..
핵심 완전 탐색으로 처음부터 쉽게 접근하기. print 많이 써서 디버깅해보기 from collections import Counter sorted 함수 key에 lambda 식 활용하기 https://gorokke.tistory.com/38 람다(lambda) 총 정리, key sort, key 정렬 1. 람다(lambda) 1 ) 의미 익명함수를 지칭하는 용어 즉, 기존의 함수(명 등)을 선언하고 사용하던 방식과는 달리 바로 정의하여 사용할 수 있는 함수. 2 ) 형식 : lambda 인자 : 표현식 예시) sum = lambda x: gorokke.tistory.com bfs 큐 사용할 때, 노드에 튜플 형태로 해당 노드의 depth까지 같이 저장해주면, 탐색 거리를 저장할 수 있다. 1. 귤 고르..
핵심 스택/큐 그리고 리스트 하나를 활용해서 문제를 풀 때, 리스트 내에 들어갈 조건을 만족하는지 체크한다. 리스트에 채워지는 수는 항상 차례대로 채워질 필요는 없다. 스택에 값이 남아있을 때까지 진행해도 됨. import functools functools.cmp_to_key(func): 정의한 func 함수의 리턴값(1, 0, -1)에 따라 정렬될 수 있는 key값 제공 sorted_list = sorted(list, key=functools.cmp_to_key(n, m)) https://wikidocs.net/109303 029 순서대로 좌표를 정렬하려면? ― functools.cmp_to_key functools.cmp_to_key(func)는 sorted()와 같은 정렬 함수의 key 매개변수에..