일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 더 맵게
- 머신러닝
- vscode
- 스택/큐
- DFS/BFS
- 동빈나
- level1
- 2020 KAKAO BLIND RECRUITMENT
- 베스트앨범
- 전화번호 목록
- 개발
- pwnable
- 문자열압축
- level 3
- level3
- 여행경로
- 동적계획법
- level2
- Python3
- 선형회귀
- level 2
- github
- themida
- Programmers
- 코딩테스트
- 타겟 넘버
- 프로그래머스
- 자물쇠와 열쇠
- 같은숫자는싫어
- Today
- Total
목록분류 전체보기 (30)
hoon

문제 설명이 괴랄하다... 다행히 질문에 문제 지문의 재해석이라는 글을 올려주신 분이 있어 해당 글을 보고 이해가 가능하다. 입출력에 예는 다음과 같이 바뀌어야 된다. ----------------------------------------------------------------------------------------- 1초의 주가는 1이며 1초부터 5초까지 총 4초간 주가를 유지했습니다. 2초의 주가는 2이며 2초부터 5초까지 총 3초간 주가를 유지했습니다. 3초의 주가는 3이며 4초의 주가는 2로 주가가 떨어졌지만 3초에서 4초가 되기 직전까지의 1초간 주가가 유지 된것으로 봅니다. 따라서 5초까지 총 1초간 주가를 유지했습니다. 4초의 주가는 2이며 4초부터 5초까지 총 1초간 주가를 유지했..

https://www.youtube.com/watch?v=ve6gtpZV83E&t=303s 나동빈 강사님의 영상을 보고 공부
diango vs. flask django -> 많이 내장되어 있음 flask -> 마이크로 pip install django # 장고 설치 django-admin startproject # 장고 시작 시 프로젝트 만들기 cd python manage.py runserver settings.py ALLOWED_HOSTS = [] # 접근 가능한 호스트 ... INSTALLED_APPS =[] #어떤걸 설치했냐 MIDDLEWARE = [] # 어떤걸 설치했냐 ROOT_URLCONF = 'webproj.urls' # url 관리를 어디서 할건지를 담당 TEMPLATES = [] # 실제보는 화면의 요소들에 관한 부분 WSGI_APPLICATION = 'webproj.wsgi.applic..

배열의 첫번째를 stack에 넣은상태에서 스택의 끝 stack[-1]과 배열의 수를 비교하여 같으면 pass하고 다르면 추가한다. def solution(arr): stack = [arr[0]] i = 1 while i < len(arr): temp = stack[-1] if arr[i] == temp: pass else: stack.append(arr[i]) i+=1 return stack

3번 기준 땜시 dict의 형태를 price와 고유번호를 같이 주는 형태로 변경해야 된다. 그걸 제외하면 dict를 2개쓰든 1개를 쓰든 상관은 없다. 테스트 케이스 2, 15 예시 ------------------------------------------------------------------- prammeters ------------------------------------------------------------------- ["classic", "pop", "classic", "classic", "pop", "pop"] [500, 600, 150, 800, 2500, 2500] -------------------------------------------------------------..

모든 옷의 수 + 1(안입을 때 경우의수)를 전부 곱하고 아예안입는 경우의 수 1을 빼면 모든 옷에 대한 조합의 수가 나온다. 처음에 안입는 경우를 생각안하고 모든 경우를 구하려고 했지만 (조합모듈을 사용해서) 테스트 케이스 1번은 30개의 옷의 종류가 주어져 시간초과가 나와 실패한다. def solution(clothes): answer = 1 clo = {} for c in clothes: clo[c[1]] = clo.get(c[1],[]) clo[c[1]].append(c[0]) for k in clo: answer *= len(clo[k]) + 1 answer -= 1 return answer

해시를 이용하는 문제이지만 sort를 이용해서 푸는 사람도 있다. sort를 이용하면 접두어가되는 문자열과 접두어를 포함하는 문자가 순서대로 정렬되는 것을 이용한다. 하지만 해쉬를 사용하는 것에 비해 느리다. ## 해쉬 사용 def solution(phone_book): phone_dict = {} for phone in phone_book: phone_dict[phone] = 0 for phone in phone_book: temp = '' for num in phone: temp += num if temp in phone_dict and temp != phone: return False return True ## 정렬 사용 def solution(phone_book): phone_book.sort()..

- 시작지점 설정 def solution(numbers, target): answer = 0 stack = [[numbers[0],0],[-1*numbers[0],0]] #start length = len(numbers) while len(stack) > 0: tmp, idx = stack.pop() idx += 1 if idx < length: stack.append([tmp+numbers[idx],idx]) stack.append([tmp-numbers[idx],idx]) else: if tmp == target: answer += 1 return answer BFS를 사용하려면 queue를 이용하고 deque.popleft나 pop(0) 사용해야됨

DFS : Depth-First Search > 스택을 이용하여 어느 정점에서 DFS를 하고 있는지를 기억하고 되돌아감 BFS : Breadth-First Search > 큐를 사용하여 어느 정점에서 BFS를 해야 하는지를 기록하고 진행함 DFS를 응용 - 한붓 그리기 문제이다. - 시작 정점은 "ICN" - 모든 간선을 거쳐야됨 - 한 정점에서 택할 수 있는 간선이 여러 개인 경우 알파벳 순서를 따름 def solution(tickets): routes = {} for t in tickets: routes[t[0]] = routes.get(t[0],[]) + [t[1]] for r in routes: routes[r].sort(reverse = True) stack = ["ICN"] path = [] ..