python

python/algorithm

백준 11660 구간 합 구하기 5 (python)

문제 N×N개의 수가 N×N 크기의 표에 채워져 있다. (x1, y1)부터 (x2, y2)까지 합을 구하는 프로그램을 작성하시오. (x, y)는 x행 y열을 의미한다. 예를 들어, N = 4이고, 표가 아래와 같이 채워져 있는 경우를 살펴보자. 1 2 3 4 2 3 4 5 3 4 5 6 4 5 6 7 여기서 (2, 2)부터 (3, 4)까지 합을 구하면 3+4+5+4+5+6 = 27이고, (4, 4)부터 (4, 4)까지 합을 구하면 7이다. 표에 채워져 있는 수와 합을 구하는 연산이 주어졌을 때, 이를 처리하는 프로그램을 작성하시오. 입력 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 ..

python/algorithm

Recursion

Recursion - 자기 자신을 호출하는 함수 void func(...) { func(...); } 위 함수를 실행코드로 짜보자 public class Recursive1 { public static void main(String[] args) { func(); } public static void func(int k) { System.out.println("Hello"); func(); } } 위와 같은 코드를 실행하게 되면 return문이 없기 때문에 무한 반복으로 Hello를 출력하면서 에러가 발생하게 된다. 그럼 Recursion은 항상 무한루프에 빠질까? 그건 아니다. 또 하나의 코드를 보자 public class Code02 { public static void main(String[] ar..

python

[python] BeautifulSoup header 설정 방법

Web Page를 크롤링을 하다보면 차단되었던 경험이 다들 한번씩은 있으실 겁니다. 이때 필요한게 User Agent지정입니다. User Agent란? 간단히 말해 소프트웨어의 식별 정보입니다. 내가 어떤 OS를 사용하는지 어떤 버전의 웹 브라이저인지를 담고 있는 정보입니다. html문서의 정보를 가져오는 간단한 코드입니다. from bs4 import BeautifulSoup as BS import request url = 'url' response = requests.get(url) print(response.status_code) print(response.text) 이렇게도 웹페이지에 접속해서 html정보를 가져올 수 있지만 웹페이지 마다 다르지만 User Agent 를 검사 시 차단당할 수 도 ..

python/algorithm

백준 11399 ATM 문제 풀이 (python)

문제 인하은행에는 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

python list element count (collections.Counter)

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

python list unique 값 확인 하는 방법

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

python을 활용하여 json 데이터 받아오기 (df 변환)

안녕하세요 오늘은 Python을 활용하여 Json 데이터를 받아오는 걸 진행해보도록 하겠습니다. JSON이란? JSON은 개발자가 데이터를 저장하고 전송하는 데 사용하는 사람이 읽을 수 있는 데이터 교환 형식입니다. JSON은 JavaScript Object Notation의 약어이며 "Jason"으로 발음됩니다. JSON은 언어 독립적입니다. 즉, 특정 프로그래밍 언어가 필요하지 않습니다 . 이는 JavaScript 와의 연관성에도 불구하고 놀랍게 보일 수 있습니다. (JSON 형식은 JavaScript 개체 리터럴에서 영감을 얻었습니다) 따라서 하나의 프로그래밍 언어로 JSON 메시지를 구성하고 전송하며 다른 프로그래밍 언어로 해당 메시지를 분해하고 읽는 것이 가능합니다. JSON은 어떤 데이터 유형..

python/selenium

Selenium alert 처리 방법

안녕하세요. 오늘은 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을..

python/Django

DRF(Django REST Framework) 란?

💡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..

Balang
'python' 카테고리의 글 목록