반응형

Algorithm_study/문법 9

딕셔너리 추가 (키 값이 존재하지 않을 때)

2차 배열 clothes의 각 리스트 두번째 요소에 clothes의 옷 종류가 있다. headgear 2개, eyewear 1개가 있다. 이것을 dictionary에 추가하고싶다. 위 코드가 너무 복잡하므로 아래와같이 간결하게 수정할 수 있다. 두 번째 for 루프 제거: 두 번째 for 루프를 제거하고, 대신에 clothes_dict.get(category, 0) + 1을 사용하여 딕셔너리에 키가 이미 존재하면 값을 증가시키고, 없으면 0에서 시작하게 합니다. 변수 이름 변경: 반복문에서 i와 j 대신에 의미있는 이름인 _ (언더스코어)와 category를 사용하여 가독성을 높였습니다. ↓ 딕셔너리 get 문법 (점프 투 파이썬) 즉, 딕셔너리.get(x, "디폴트값") (x=딕셔너리의 키값) clot..

deque

덱(deque) : 큐(queue) 와 스택(stack)의 기능을 모두 가지고 있는 자료구조 양쪽 끝에서 데이터의 삽입과 삭제가 모두 효율적으로 이루어질 수 있도록 설계되어 있음 # deque from collections import deque #덱 생성 my_deque = deque() #요소 삽입 my_deque.append(1) # 오른쪽 끝에 요소 추가 my_deque.append(3) my_deque.appendleft(2) #요소 삭제 element = my_deque.pop() # 오른쪽 끝 요소 삭제하고 반환 element_left = my_deque.popleft() # 덱 출력 print(my_deque) => deque([2, 1, 3])

Python_re.findall()

정규 표현식(Regular Expression) : 문자열에서 특정한 패턴을 찾거나 대체, 추출하는 데 사용되는 문자열 패턴 ▪ '\d' : 숫자를 의미함 ▪ '\w' : 문자나 숫자, 밑줄 문자(_)를 의미함 ▪ '\s' : 공백 문자를 의미함 ▪ '+' : 바로 앞에 있는 문자나 문자 클래스가 한 번 이상 반복되는 패턴을 찾음 ▪ '{m, n}' : 바로 앞에 있는 문자나 문자 클래스가 m번 이상, n번 이하로 반복되는 패턴을 찾음 ex) 숫자 2개를 추출하기 위한 정규 표현식 : r'\d{2}'

Python_math.comb()

Python_itertools모듈의 combinations함수 파이썬의 itertools 모듈은 유용한 반복자 기능을 제공하는 모듈이다. itertools 모듈의 'combinations'함수는 주어진 시퀀스에서 지정된 길이의 가능한 모든 조합을 생성한다. itertools.combinations(iterable,r) oaho.tistory.com math.comb()함수는 조합(combination) 을 계산하는 함수다. 조합은 서로 다른 n개의 원소에서 r개를 선택하는 경우의 수를 의미한다. math.comb(n, r) : n개의 원소 중에서 r개를 선택하는 경우의 수, 즉 nCr = n!/(r!(n-r)!) itertools.combinations() 함수도 조합을 구할 때 사용하지만 , 파라미터와..

Python_itertools모듈의 combinations함수

파이썬의 itertools 모듈은 유용한 반복자 기능을 제공하는 모듈이다. itertools 모듈의 'combinations'함수는 주어진 시퀀스에서 지정된 길이의 가능한 모든 조합을 생성한다. itertools.combinations(iterable,r) - iterable : 조합을 만들어낼 시퀀스 (리스트, 튜플, 문자열 등) - r : 조합을 만들 길이 예시: 리스트 [1, 2, 3]에서 길이가 2인 모든 조합은 (1, 2), (1, 3), (2, 3) 이다. 'combination' 함수 사용하여 생성할 수 있다. 'combinations'함수는 프로그래밍 문제에서 가능한 모든 조합을 생성하거나, 최적해를 찾을 때 유용하게 사용될 수 있다.

Python_문자열 뒤집기

1. reversed()함수 이용하기 reversed()함수는 iterable객체(문자열, 리스트 ,튜플 등)을 역순으로 뒤집는 함수다. reversed함수의 결과는 iterator객체이므로, 이를 다시 리스트나 문자열로 변환해야한다. string= "hello" reversed_string = ''.join(reversed(string)) print(reversed_string) 2. [::-1]이용하기 슬라이싱 [::-1]을 이용해서 뒤집을 수 있다. string= "hello" reversed_string = string[::-1] print(reversed_string) => 결과는 "olleh" 로 출력된다.

문제 풀다 시간 제한 걸릴 때 참고사항

📌 최대 시간이 1초일 때 입력 데이터 수에 따른 시간 복잡도 ▪ 1,000개 -> O(n2) 이하 ▪ 10,000 -> O(n2) 미만 ▪ 100,000 -> O(nlogn) 이하 ▪ 1,000,000 -> O(nlogn)미만 ▪ 그 이상이라면 -> 입력 데이터 수가 백만 개 이상이라면 문제의 조건을 유심히 살펴보기 , 특정 알고리즘을 사용하도록 요구할 가능성이 큼 📌 자주 사용하는 자료 구조에 따른 시간 복잡도 자료 구조 탐색 삽입 삭제 배열 O(n) O(n) O(n) 정렬된 배열 O(logn) O(n) O(n) 연결 리스트 O(n) O(1) O(1) 스택/큐 O(n) O(1) O(1) 해시 O(1) O(1) O(1) 이진 트리 O(logn) O(logn) O(logn) 📌 문제 풀다 시간 제한 걸리..

반응형