코테-2(Python)

백엔드류·2024년 3월 20일

알고리즘

목록 보기
2/4

파이썬 리스트를 문자열로 변환

arr = ['a','b','c','d']
print('',join(arr))
#실행결과
abcd

join 함수를 쓰면 리스트를 문자열로 변환할 수 있다.
추가로 ,''사이에 어떤 기호를 넣어주면 리스트의 각 요소와 요소 사이에 추가된다.

print('/',join(arr))
#실행결과
a/b/c/d

  • ''.join(리스트)''.join(리스트)를 이용하면 매개변수로 들어온 ['a', 'b', 'c'] 이런 식의 리스트를 'abc'의 문자열로 합쳐서 반환해주는 함수인 것입니다.
  • '구분자'.join(리스트)'구분자'.join(리스트)를 이용하면 리스트의 값과 값 사이에 '구분자'에 들어온 구분자를 넣어서 하나의 문자열로 합쳐줍니다.'_'.join(['a', 'b', 'c']) 라 하면 "a_b_c" 와 같은 형태로 문자열을 만들어서 반환해 줍니다.


구현, 시뮬레이션 및 완탐 에서는 2차원 공간에서의 방향벡터가 자주 활용



#동,북,서,남
dx=[0,-1,0,1]
dy=[1,0,-1,0]

#현재위치
x,y=2,2

for i in range(~):
	nx=x+dx[i]
    ny=y+dy[i]
#위치이동
x,y=nx,ny

##또는 방향벡터정의를 steps=[(-2,-1),(-1,-2),(2,-1)...]이렇게도 가능하다

코테에서 알아두면 좋은 기본 함수

  • enumerate() : 반복문에서 해당 함수를 이용하면, 리스트의 원소와 인덱스를 동시에 사용할 수 있다.
    ex) for index, element in enumerate(리스트):

  • zip() : 매개변수로 받은 배열들을 같은 index 끼리 매칭하여 묶어준다.
    ex) list(zip([1,2,3],[a,b,c])) #result : [(1,a),(2,b),(3,c)]

  • filter(): list에서 조건에 맞는 원소만 추출한다.
    ex) list(filter(lambda x:x>=n, 배열))

  • cmp_to_keys() : 비교함수 return 값이 1이면 a를 앞으로, -1이면 b를 앞으로(같으면0)

    ex) import functools
    배열.sort(key=functools.cmp_to_key(비교함수))

    def 비교함수 (a,b):
    return a-b


  • 파이썬에서의 set은 집합을 의미하고 집합의 특성을 활용하여, 중복제거 등 유용한 작업을 수행 가능하다.

주의할점 : 집합을 만들고 나면 출력 형태는 {} 이지만, 선언 시 a={}라고 하면 안됨. 이는 {} 이 자체론 dictionary를 의미하기 때문이다.

  • 리스트에서 중복을 삭제하고 싶을땐 set(리스트)

  • 집합에 원소를 추가하거나 제거하는 작업
    • 집합.add(원소) # 한 개 추가
    • 집합.update(배열/집합) # 여러 개 추가
    • 집합.remove(원소) # 하나 삭제(원소가 없으면 KeyError)
    • 집합.discard(원소) # 하나 삭제(원소가 없어도 에러 발생x)


  • keys() : 딕셔너리의 모든 키를 반환. list() 함수를 사용하여 리스트로 변환 가능
    +values() : 딕셔너리의 모든 값을 반환. list() 함수를 사용하여 리스트로 변환 가능

  • Counter 객체는 덧셈 뺄셈 가능
    counter1 = Counter(["A", "A", "B"])
    counter2 = Counter(["A", "B", "B"])

    counter1 + counter2
    Counter({'A': 3, 'B': 3})

    • 뺄셈
      counter1 - counter2
      Counter({'A': 1})
      단, 뺄샘의 결과로 0이나 음수가 나온 경우에는 최종 카운터 객체에서 제외가 되니 이 부분 주의해서 사용해야 한다.
  • 2개의 딕셔너리를 합치는 방법

    • key값이 겹치지 않을 때 : 딕셔너리1.update(딕셔너리2)- 만약 겹친다면 중복된 기존 key값은 update의 인수로 넣어준 값으로 대체됨
    • key값이 겹칠 때 : Counter객체로 딕셔너리 감싸고 더하기 연산
profile
공부한 내용을 정리한 블로그입니다 & 백엔드 개발자

0개의 댓글