
코테 준비를 하다 보면 정답이 너무 커지는 것을 막기 위해 특정 값으로 나눠서 리턴하라고 하는 경우가 있다 정답을 모듈러로 리턴하라고 하니깐 당연히 맨 마지막에 처리하면 된다고 생각했는데 그러면 시간 초과가 난다우선 for 문 수행 중에 그냥 바로 모듈러를 수행하면 시간 초과를 피할 수 있다. 그 이유를 요약하자면 다음과 같다1. 중간에 모듈러를 매번 수행하든 마지막에 수행하든 결과 자체는 동일하다.2. 중간에 모듈러를 사용하는 것이 실행 시간에 이점이 존재한다. 1. 캐시 메모리 효율성CPU 캐시 메모리는 CPU가 자주 사용하는 데이터를 저장하는 작은 공간이다. 캐시 메모리는 메인 메모리(RAM)보다 훨씬 빠르게 접근 가능하다.작은 값의 데이터는 더 작은 공간을 차지하므로, 캐시에 더 많이 저장될 수..
https://leetcode.com/problems/house-robber/solutions/156523/From-good-to-great.-How-to-approach-most-of-DP-problems./ 참조할 문제https://school.programmers.co.kr/learn/courses/30/lessons/42897 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr
https://school.programmers.co.kr/learn/courses/30/lessons/214288 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제를 푸는 방법은 간단하다1. 멘토 배정의 조합을 구한다 -> itertools.combinations 사용2. 해당 조합으로 heapq 를 사용하여 순회한다 -> heapq push, pop3. 조합 돌리면서 최소의 시간을 구한다 import heapqfrom itertools import combinationsdef calculate_wait_time(mentor_distribution, re..
문자열에 대한 정렬 조건이 주어질 때 그에 대한 정렬을 야무지게 해주면 되는 문제이다functools 의 cmp_to_key를 적극적으로 사용하면 된다 또한 문자열의 조건이 꽤 빡빡하므로 그에 대해 확인하면 된다-> HEAD, NUMBER, TAIL이때 HEAD에 공백이 포함될 수 있기 때문에 주의 필요 (테케 6,7,8,9 통과 안되는 이유) from functools import cmp_to_keydef parse(file:str): flag = False num_sti = -1 num_edi = -1 for idx, item in enumerate(file): if item.isdigit(): if not flag: ..
def solution(citations): answer = len(citations) citations.sort(reverse=True) for idx, citation in enumerate(citations): if citation 문제 설명이 많이 헷갈리는데 그냥 자주 읽어보고 예시 들어보고 그러는게 맞는듯 일단 처음에 접근할 때는 h 이상 인용된게 h개 이상이고, h 이하로 인용된게 h개 이하라고 해서 많이 헷갈렸음그래서 bigger, smaller 이딴식으로 두고 처리했었는데 그러면 안됨 큰 것부터 정렬해두고 idx >= citation 인 경우 answer = idx 로 두고 break 하면 됨왜 그러냐면 h-index 조건이 이렇기 때문임 (그냥 그럼) h-i..
파이썬에서 sort 를 수행할 때 그에 대한 key를 지정해줄 수 있다. from functools import cmp_to_keydef compare(a,b): if a+b > b+a: return -1 elif a+b 이는 프로그래머스 "가장 큰 수" 문제에 대한 코드인데, 문자열을 커스텀한 key 로 정렬하는 것이 필요하다위의 compare 함수를 보면 string a, b에 대해, 다음과 같은 로직으로 정렬을 처리한다 1. (a+b) > (b+a): return -1 -> e.g) a="2", b="10" (a+b) ="210" ,(b+a) = "102", (a+b) > (b+a) .. return -1 -> a가 b보다 앞에 있어야 한다는 뜻! 2. (a+b) -> e..
- Total
- Today
- Yesterday
- Javascript
- 프로그래머스
- django testcase
- 백준
- SSL
- 그리디
- vscode
- 이것도모르면바보
- 파이썬
- Til
- BOJ
- django test
- jwt
- 힙
- 삽질
- Remote
- 위상정렬
- docker-compose update
- 코딩테스트
- Event Sourcing
- 최대한 간략화하기
- cipher suite
- requests
- 우선순위큐
- 불필요한 값 무시하기
- endl을절대쓰지마
- SQL
- factory_pattern
- Python
- 스택
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |