위지원의 데이터 일기 🐈
Home
  • 분류 전체보기 (563)
    • ✎ 2025년 (4)
    • 2024년 (16)
    • 2023년 (6)
    • 2022년 (35)
      • Developement (22)
      • Error (9)
    • 2021년 (68)
      • ERROR (9)
      • 알고리즘 (11)
      • 개발공부 (21)
      • Data (15)
      • 21.下 (12)
    • 2020년 (164)
      • 코테 (84)
      • Development (29)
      • 정처기 (41)
    • 2019년 (27)
    • 2018년 (89)
      • English Speaking (8)
      • Error (12)
      • C, Java, FileSystem (13)
      • DataBase (15)
      • Java (2)
      • 지식 (16)
      • Go (3)
      • spark (9)
      • 영어 (5)
      • 알고리즘 (6)
    • 2017년 (143)
      • Error (17)
      • machine learning (16)
      • Spark (20)
      • Database (19)
      • Python (17)
      • Spring (9)
      • etc. (10)
      • 백준 (5)
      • Google Platform (12)
      • web Development (7)
      • Docker (3)
      • Linux (8)
Home
  • 분류 전체보기 (563)
    • ✎ 2025년 (4)
    • 2024년 (16)
    • 2023년 (6)
    • 2022년 (35)
      • Developement (22)
      • Error (9)
    • 2021년 (68)
      • ERROR (9)
      • 알고리즘 (11)
      • 개발공부 (21)
      • Data (15)
      • 21.下 (12)
    • 2020년 (164)
      • 코테 (84)
      • Development (29)
      • 정처기 (41)
    • 2019년 (27)
    • 2018년 (89)
      • English Speaking (8)
      • Error (12)
      • C, Java, FileSystem (13)
      • DataBase (15)
      • Java (2)
      • 지식 (16)
      • Go (3)
      • spark (9)
      • 영어 (5)
      • 알고리즘 (6)
    • 2017년 (143)
      • Error (17)
      • machine learning (16)
      • Spark (20)
      • Database (19)
      • Python (17)
      • Spring (9)
      • etc. (10)
      • 백준 (5)
      • Google Platform (12)
      • web Development (7)
      • Docker (3)
      • Linux (8)
블로그 내 검색
포트폴리오

위지원의 데이터 일기 🐈

데이터를 사랑하고 궁금해하는 기록쟁이입니다! 😉 Super Data Girl이 되는 그날까지🏃‍♀️ 화이팅!

  • 🖥 깃블로그
  • 🌍 위키원
  • 📑 내맘대로 스크랩
  • 💌 메일
  • 2021년/알고리즘

    파이썬을 파이썬답게

    2021. 3. 22. 21:42

    by. 위지원

     

     

    파이썬을 파이썬답게

    본 강의는 파이썬 문법을 이미 알고 있는 분들을 대상으로 만들어졌습니다. ##### 이런 분들께 추천합니다 * 파이썬 문법을 알고 계시는 분 * 알고리즘 문제를 조금 더 쉽게 풀고 싶은 분 * Python 코

    programmers.co.kr

     

    1. 진법 변환법

    num, base = map(int, input().strip().split(' '))
    answer = int(str(num), base)
    print(answer)
    

     

    2. 문자열 정렬

    s, n = input().strip().split(' ')
    n = int(n)
    print("%s\n%s\n%s\n" % (s.ljust(n),s.center(n),s.rjust(n)))

     

    3. 문자열 라이브러리

    import string
    num = int(input().strip())
    print_dic = {0:string.ascii_lowercase, 1:string.ascii_uppercase}
    print(print_dic[num])

     

    4. Trans 배열

    나는 numpy를 썼는데..

    import numpy as np
    
    def solution(mylist): 
        return np.transpose(np.array(mylist)).tolist()
        

     

    아래처럼 map을 사용하면 더 쉽게 뒤집을 수 있었다..

    new_list = list(map(list, zip(*mylist)))

     

    >>> mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
    >>> zip(mylist)
    [([1, 2, 3],), ([4, 5, 6],), ([7, 8, 9],)]
    >>> zip(*mylist)
    [(1, 4, 7), (2, 5, 8), (3, 6, 9)]
    >>> map(list,zip(*mylist))
    [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
    >>> list(map(list,zip(*mylist)))
    [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

     

    5. 리스트 원소간 차이 구하기

    이번에도 zip을 이용하는 것이였다. 나는 인덱스로 접근을 했는데...

    def solution(mylist):
        return [abs(mylist[i]-mylist[i+1]) for i in range(len(mylist)-1)]

    아래처럼 zip을 이용해 더 쉽게 가능했다. 

    def solution(mylist):
        return [abs(num_1-num_2) for num_1, num_2 in zip(mylist, mylist[1:])]

     

    6. 2차원 배열을 1차원으로 줄이기

    이건 정말.. 놀랍다

    def solution(mylist):
        return sum(mylist,[])

     

    7. 순열과 조합

    순열은 permutations(순서 고려), 조합은 combinations(순서 고려 X) : 고려한다-> AB와 BA를 다르게 인식한다.

    from itertools import permutations
    
    def solution(mylist):
        return sorted(list(permutations(mylist,len(mylist))))

     

    8.for-else 

    난생 첨본다.. 난 지금껏 flag 성애자였는데

     

    처음엔 아래와같이 풀었는데

    import math 
    
    mul = 1
    flag = False
    for _ in range(5):
        mul *= int(input())
        if math.sqrt(mul) == int(math.sqrt(mul)):
            print("found")
            flag = True
            break 
            
        
    if not flag:
        print("not found")

     

    세-상에... 

    import math 
    
    mul = 1
    for _ in range(5):
        mul *= int(input())
        if math.sqrt(mul) == int(math.sqrt(mul)):
            print("found")
            break 
    else:
        print("not found")

     

    9. bisect 모듈

    from bisect import bisect
    mylist = [1, 2, 3, 7, 9, 11, 33]
    bisect(mylist, 2)

     

    10. 가장 큰 수와 작은 수

    max_value = float('-inf')
    min_value = float('inf')
    저작자표시

    '2021년 > 알고리즘' 카테고리의 다른 글

    [파이썬 알고리즘 인터뷰] 페어의 노드 스왑  (0) 2021.03.23
    [파이썬 알고리즘 인터뷰] 역순 연결 리스트  (0) 2021.03.22
    [파이썬 알고리즘 인터뷰] 두 정렬 리스트의 병합  (0) 2021.03.22
    [파이썬 알고리즘 인터뷰] 두 수의 덧셈  (0) 2021.03.22
    [파이썬 인터뷰 알고리즘] 주식을 살고팔기 가장 좋은 시점  (0) 2021.03.18

    잠깐만요~! 읽으신김에 이런 글들은 어떠세요? 👀

    • [파이썬 알고리즘 인터뷰] 페어의 노드 스왑 2021.03.23
    • [파이썬 알고리즘 인터뷰] 역순 연결 리스트 2021.03.22
    • [파이썬 알고리즘 인터뷰] 두 정렬 리스트의 병합 2021.03.22
    • [파이썬 알고리즘 인터뷰] 두 수의 덧셈 2021.03.22
    맨 위로
전체 글 보기
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

열정! 열정! 열정! 🔥

Designed by Nana
블로그 이미지
위지원
데이터 엔지니어로 근무 중에 있으며 데이터와 관련된 일을 모두 좋아합니다!. 특히 ETL 부분에 관심이 가장 크며 데이터를 빛이나게 가공하는 일을 좋아한답니다 ✨

티스토리툴바

티스토리툴바