백준 11399 ATM 문제 풀이 (python)
·
python/algorithm
문제 인하은행에는 ATM이 1대밖에 없다. 지금 이 ATM앞에 N명의 사람들이 줄을 서있다. 사람은 1번부터 N번까지 번호가 매겨져 있으며, i번 사람이 돈을 인출하는데 걸리는 시간은 Pi분이다. 사람들이 줄을 서는 순서에 따라서, 돈을 인출하는데 필요한 시간의 합이 달라지게 된다. 예를 들어, 총 5명이 있고, P1 = 3, P2 = 1, P3 = 4, P4 = 3, P5 = 2 인 경우를 생각해보자. [1, 2, 3, 4, 5] 순서로 줄을 선다면, 1번 사람은 3분만에 돈을 뽑을 수 있다. 2번 사람은 1번 사람이 돈을 뽑을 때 까지 기다려야 하기 때문에, 3+1 = 4분이 걸리게 된다. 3번 사람은 1번, 2번 사람이 돈을 뽑을 때까지 기다려야 하기 때문에, 총 3+1+4 = 8분이 필요하게 된다..
python list element count (collections.Counter)
·
python
list에서 각 요소가 몇개인지 파악하기 위해 사용할 수 있는 collections.Counter에 대해 알아보겠습니다. 사용방법은 굉장히 간단합니다. 먼저 random을 활용해서 random_list를 만들어 줍니다. import random import numpy as np arr = [random.choice(['A', 'B', 'C']) for _ in range(50)] print(arr) np.unique(arr) 그 이후 collections에 Counter를 불러와 사용해주면 끝입니다. from collections import Counter counter = Counter(arr) print(counter) for value, count in counter.items(): print(f'..
python list unique 값 확인 하는 방법
·
python
list에서 unique를 확인하는 방법에 대해 알아보도록 하겠습니다. numpy를 사용하면 굉장히 쉽게 확인할 수 있습니다. import random import numpy as np arr = [random.choice(['A', 'B', 'C']) for _ in range(50)] print(arr) print(np.unique(arr)) ## ['C', 'C', 'C', 'A', 'B', 'A', 'A', 'C', 'C', 'A', 'A', 'B', 'C', 'A', 'B', 'C', 'C', 'C', 'C', 'A', 'C', 'A', 'C', 'B', 'C', 'A', 'B', 'A', 'B', 'B', 'C', 'C', 'A', 'C', 'C', 'A', 'B', 'C', 'C', 'B',..
python을 활용하여 json 데이터 받아오기 (df 변환)
·
python
안녕하세요 오늘은 Python을 활용하여 Json 데이터를 받아오는 걸 진행해보도록 하겠습니다. JSON이란? JSON은 개발자가 데이터를 저장하고 전송하는 데 사용하는 사람이 읽을 수 있는 데이터 교환 형식입니다. JSON은 JavaScript Object Notation의 약어이며 "Jason"으로 발음됩니다. JSON은 언어 독립적입니다. 즉, 특정 프로그래밍 언어가 필요하지 않습니다 . 이는 JavaScript 와의 연관성에도 불구하고 놀랍게 보일 수 있습니다. (JSON 형식은 JavaScript 개체 리터럴에서 영감을 얻었습니다) 따라서 하나의 프로그래밍 언어로 JSON 메시지를 구성하고 전송하며 다른 프로그래밍 언어로 해당 메시지를 분해하고 읽는 것이 가능합니다. JSON은 어떤 데이터 유형..
Selenium alert 처리 방법
·
python/selenium
안녕하세요. 오늘은 selenium alert 처리 방법에 대해서 알아보도록 하겠습니다. 크롤링을 하다보면 alert이 뜨는 바람에 원하는 로직이 정상적으로 돌아가지 않는 상황을 마주하곤 합니다. 이럴때 어떻게 처리할 수 있을까요? 총 2가지 방법에 대해서 말씀드리겠습니다. try: result = browser.switch_to.alert result.accept() # alert 창 확인 클릭 alert.dismiss() # alert 창 취소 클릭 except: # alert 없을 시 처리 로직 작성 pass 첫 번째 방법은 selenium 안에 있는 switch_to.alert를 활용하는 방법 입니다. 내가 어떠한 페이지를 클릭 했을 때 alert이 뜬 경우 위와 같은 방법으로 처리할 수 있습니다..
크롤링 자주 나는 오류
·
python/selenium
Crawling이란? 페이지 데이터를 추출하는 Scraping과 개념과 달리 페이지에 있는 링크를 따라 새 페이지로 연결되는 것과 새 페이지의 링크를 계속해서 찾아 다른 새 페이지로 연결되는 것을 의미 합니다. 웹 크롤러는 페이지의 모든 링크를 따라가며 새 페이지로 이동하고 크롤링 할 새 링크나 페이지가 더 이상 없을 때까지 해당 프로세스를 계속하는 소프트웨어 프로그램입니다. 웹크롤러는 로봇, 스파이더, 검색 엔진 봇 등 다양한 이름으로 알려져 있습니다. 봇이라고 불리는 이유는 할당된 작업이 있고, 링크에서 링크로 이동하며, 각 페이지의 정보를 캡쳐하기 때문입니다. 우리가 웹 페이지의 데이터를 수집할 때 python으로 하는 경우 BS4와 Selenium을 가장 많이 활용합니다. 오늘은 Selenium을..
DRF(Django REST Framework) 란?
·
python/Django
💡DRF란? Django 기반 REST API 서버 구축을 위한 라이브러리 Django와 다르게 프론트엔드를 개발하지 않기 때문에 Model과 View 그리고 Serializer가 됩니다. DRF의 구조에 대해서 지칭하는 패턴은 없습니다. 백엔드의 용도로 사용하기 때문에 Template을 사용하지 않습니다. 대신, JSON파일의 형식으로 프론트엔드와 데이터를 주고받습니다. Django와의 차이점 DRF 로직 🧗🏻DRF 모듈 설명 DRF 모듈 설명 models.py 모델 정의 데이터베이스 테이블을 추상화한 개념 Django ORM을 통해 파이썬 문법으로 데이터를 처리할 수 있음 Django에서 데이터는 JSON이나 유사한 포맷이 아닌, 파이썬 객체의 형태로 저장됨 class Product(models.Mo..