ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python] 파이썬 문제 해결 전략 (5)
    내일배움캠프/Python 2024. 7. 18. 21:26

     

     

    # 공백 없애주기

    a = ‘   1 2  34  

    a.split() => ['1', '2', '34']

     

    여러 개의 구분자로 문자열을 나눌 때

    구분자를 공백으로 바꿔주고

    공백을 split으로 없애주는 방법이 많이 쓰임

     

    # 정렬

    solution=lambda a,n:sorted(a,key=lambda x:(abs(x-n),x))[0]

     

    하나의 기준으로 정렬할 때 같은 값이 나온 경우, 추가적인 기준을 주는 법

     

    # 딕셔너리 get 함수

    C = years.get(‘c’, ‘nothing’)

    만약 딕셔너리에 c가 있다면 c의 값을 가져오고 없다면 c에 nothing을 저장해라

     

    # 이진트리

    쿼리(n) 종류가 많아지면 2분할 방식으로 2이하, 3이상 으로 만들어주면(2진트리) n:1~4까지 어떤 경우든 조건문 2번 안에 자리를 찾아 들어가게 됩니다!

     

    # 이진수

    A = ‘1010’ 일 때 int(A, 2)를 하면 십진수로 표현

     

    bin(10)은 10을 이진수로 바꿔줌. 

    이진수임을 표현하기 위해 앞 두 자리가 0b임

     

    # 슬라이싱

    슬라이싱은 배열의 길이를 초과해도 오류가 나지 않음

     

    # 약수 구하기

    기사단원의 무기

    문제를 풀면서 처음으로 시간 초과를 맞아봤다…

    시간 복잡도를 이해하고, 약수 구하기 알고리즘을 공부할 필요성을 느꼈다.

     

    # 대소문자 바꾸기

    print(input().swapcase())

    너무 쉬워지네

     

    # 등수 구하기

    def solution(score):

        a = sorted([sum(i) for i in score], reverse = True)

        return [a.index(sum(i))+1 for i in score]

     

    sorted로 내림차순을 한 뒤

    index를 통해서 순위 구하기

     

    # 차근차근 최대값 구하기

        num = 0

        data = 0

        for i in set(array):

            if array.count(i) > num:

                num = array.count(i)

                data = i

            elif array.count(i) == num:

                data = -1

        return data

     

    # 조건의 일부만 만족 모두 만족

    if any(cur<num for num in temp):

    if all(cur<num for num in temp):

     

    이렇게 하니까 조건을 주기 쉬운 것 같아..

     

    # 소수 판별

    에라토스테네스의 체

    소수를 구하는 방법으로

    2부터 시작해서 소수의 배수들을 모두 소거해나감..

     

    이걸 어떻게 알고리즘으로 작성할까 싶지만..

    사용할 수만 있다면 메모리 사용을 줄여줄 수 있지 않을까…

     

    # 아스키 코드로 범위

    def solution(my_string):

        char_up = {chr(i) : 0 for i in range(ord('A'),ord('Z') + 1)}

        char_lo = {chr(i) : 0 for i in range(ord('a'),ord('z') + 1)}

        for m in my_string :

            if m.isupper() :

                char_up[m] += 1

            else :

                char_lo[m] += 1

        return list(char_up.values()) + list(char_lo.values())

     

    # 대입표현식(바다코끼리 연산자)

     

    [y := f(x), y**2, y**3]

    이런 식으로 바로 변수를 정의를 내릴 수가 있음

     

     

Designed by Tistory.