내가 보려고 만든 코테 정리 -1

송다은·2024년 10월 16일
  1. 소수 구하기 :
def isPrime(num) :
	if num < 2:
		return False
	for i in range(2, int(i**0.5)+1) :
			if num % i == 0 :
				return False
	return True
	
	
	def solution(n) :
		
			for i in range(n) :
				if isPrime(i) :
					prime_count += 1 
					
			return prime_count 
  1. permutations ⇒ from itertools import permutations

    • permutations - 순서를 고려하여 중복없이 뽑는 경우
      • permutations(’ABCE’, 2) : AB AC AD BA BC BD CA CB CD DA DB DC
    • combinations - 순서를 고려하지 않고 중복 없이 뽑는 경우
      • combinations(’ABCD’, 2) : AB AC AD BC BD CD
    • product(’ABCD’, 2) - 순서 고려하지 않고 중복 있음
      • AA AB AC AD BA BB BC BD CA CB CC CD DA DB DC DD
  2. split

    • 문자열.split(’구분자’, 분할 횟수) → 만약 분할 횟수가 3이면 분할되는 ‘개수’는 4개
    • 문자열.split() 와 문자열.split(’ ‘)는 다르다!
  3. queue ⇒ from collections import deque

    • 함수 (put 사용 x)
      • appendleft : 처음자리에 추가할 수 있음 / append() : 뒷자리에 추가
      • popleft : 처음자리거 빼기 / pop() : 뒷자리거 빼기
      • remove (item) : 덱에서 첫번째로 발견된 item을 제거
      • extend(iterable) : 반복 가능한 객체의 모든 요소를 추가 (오른쪽에) / extendleft(iterable) : 왼쪽 끝에 추가 반대 순서로 삽입 됨 2 1 3 4 O / 1 2 3 4 X
      • count(item) : item이 몇번나왔는지 반환
      • rotate(n) : n만큼 회전
        queue = deque([1, 2, 3, 4])
        queue.rotate(1)
        print(queue)  # deque([4, 1, 2, 3])
        queue.rotate(-2)
        print(queue)  # deque([2, 3, 4, 1])
  4. lambda

    • 정렬할 경우
      • sorted_data = sorted(data, key=lambda x: x[1]) 두 번째 원소를 기준으로 리스트를 정렬
    • map()과 사용 ⇒ iterable에 함수의 결과를 적용한 새로운 iterable을 반환할 때!! (sorted에서는 결과가 적용은 안됨 )
      # 각 요소에 2를 곱하는 함수 적용
      numbers = [1, 2, 3, 4]
      result = map(lambda x: x * 2, numbers)
      print(list(result))  # [2, 4, 6, 8]
    • 조건부 표현식 사용
      # 양수는 그대로, 음수는 0으로 바꾸는 함수
      positive_or_zero = lambda x: x if x > 0 else 0
      
      print(positive_or_zero(5))   # 5
      print(positive_or_zero(-3))  # 0 
      굳이 조건부 쓸 때는 안해도 될듯? ..
  5. BFS → queue에 탐색할 좌표를 모두 추가하고 queue가 다 빠져나갈 때까지 while문을 돌려서 확인하기 (확인할 때 popleft()로 빼서 확인하기)

  6. 컴프리헨션 for문 if문 함께 쓸 때 확인

    • [표현식 for 변수 in 반복가능한 객체 if 조건]
    squares_of_evens = [x**2 for x in numbers if x % 2 == 0]
  7. any (반복 가능한 객체) / all (반복 가능한 객체)

    # any: 리스트에서 하나라도 참인 값이 있으면 True
    numbers = [0, 0, 3, 0]
    result_any = any(numbers)
    print(result_any)  # 결과: True (3이 있기 때문)
    
    # all: 모든 값이 참이어야 True
    numbers = [1, 2, 3]
    result_all = all(numbers)
    print(result_all)  # 결과: True (모두 0이 아니므로 참)
    
  8. sort() / sorted()

    • sort()는 리스트 자체를 정렬하며, 원본 리스트를 변경.
    • sorted()는 정렬된 새로운 리스트를 반환하며, 원본 리스트는 변하지 않음
    # sort(): 원본 리스트가 정렬됨
    numbers = [3, 1, 4, 1, 5]
    numbers.sort()
    print(numbers)  # 결과: [1, 1, 3, 4, 5]
    
    # sorted(): 원본은 유지되고 정렬된 새 리스트 반환
    numbers = [3, 1, 4, 1, 5]
    sorted_numbers = sorted(numbers)
    print(sorted_numbers)  # 결과: [1, 1, 3, 4, 5]
    print(numbers)         # 원본: [3, 1, 4, 1, 5]
    
profile
Anomaly Detection, AI Security, Multimodal

0개의 댓글