728x90
반응형
SMALL

코딩테스트 4

[Python] 스킬트리

✏️ 문제 문제 파악나는 skill_trees의 문자열들 중에 skill에 없는 문자가 있다면 replace로 없애고 난 후에 비교했는데 다른 분들은 그냥 제거 과정 없이 바로 비교해서 푸셔서 코드가 훨씬 간결하셨다..  코드def solution(skill, skill_trees): answer = 0 for i, skill_tree in enumerate(skill_trees): for s in skill_tree: if s not in skill: skill_tree = skill_tree.replace(s, '') skill_trees[i] = skill_tree for skill_tree in..

[Python] 더 맵게

✏️ 문제 문제 파악scoville 길이가 최대 1,000,000이기 때문에 배열을 반복문을 통해 돌면 당연히 시간복잡도에서 걸린다.  이때 이 문제는 힙을 사용하면 좋은데 이유는 최소값이나 최대값을 효율적으로 빠르게 추출해야 하고 힙 속성 덕분에 힙에 넣으면 자동으로 정렬이 되기 때문이다.배열은 특정 값을 찾을 때 최악의 경우 O(n)이라는 시간이 소요되고, 계속해서 정렬을 해줘야하는 반면힙은 최소값이나 최대값을 찾을 때 O(1)이라는 시간이 소요된다.  그래서 이러한 힙을 활용해서 문제를 풀면 쉽게 풀 수 있다.   코드import heapqdef solution(scoville, K): heapq.heapify(scoville) answer = 0 while len(scovi..

[Python] 뒤에 있는 큰 수 찾기

✏️ 문제 문제 파악처음엔 이중 for 반복문 사용했다가 numbers 길이가 1,000,000 까지라 시간복잡도에서 무조건 걸릴거라 예상했다..그래서 배열을 한바퀴 돌되 그 전에 있던 값들도 비교를 하려면 stack에 넣어서 안의 값을 계속 비교하며 처리해야 할 것 같아 stack을 사용했다. 아직 stack을 잘 사용할 줄 모르는 거 같아서 큰일이다.. ㅠ유사한 문제로는 주식가격이 있다. 코드실패 코드def solution(numbers): answer = [] for i in range(len(numbers)-1): for j in range(i+1, len(numbers)): if numbers[i] 성공 코드def solution(number..

[Python] 코딩테스트 풀 때 유용한 파이썬 함수 (1)

코딩테스트 풀 때 유용한 파이썬 함수 Counter, join, zip, lambda 4가지에 대해서 알아보겠습니다.  1. Counter()collections 모듈에 포함된 데이터 카운팅을 위한 클래스이므로 사용할 때 import 해주어야 한다.주어진 데이터에서 요소들의 개수를 빠르게 세어주며 결과를 딕셔너리 형태로 반환한다.주로 문자열, 리스트, 튜플 등 반복 가능한(iterable) 객체에서 요소의 빈도를 계산할 때 사용한다. 1.1 사용법 입력: iterable 객체출력: 각 요소의 개수를 담은 딕셔너리 형태from collections import Counter# 1. 문자열counter1 = Counter("abcabc")print(counter1) # Counter({'a': 2, 'b'..

Python 2024.12.10
728x90
반응형
LIST