분류 전체보기 70

백준 #17829

기억할 것 1. 분할정복 문제를 풀 때는 웬만해선 재귀함수를 사용할 것 2. 재귀함수 변수는 한번에 설정한다는 생각보단 풀면서 조정해야 함 문제 조기 졸업을 꿈꾸는 종욱이는 요즘 핫한 딥러닝을 공부하던 중, 이미지 처리에 흔히 쓰이는 합성곱 신경망(Convolutional Neural Network, CNN)의 풀링 연산에 영감을 받아 자신만의 풀링을 만들고 이를 222-풀링이라 부르기로 했다. 다음은 8×8 행렬이 주어졌다고 가정했을 때 222-풀링을 1회 적용하는 과정을 설명한 것이다 행렬을 2×2 정사각형으로 나눈다. 각 정사각형에서 2번째로 큰 수만 남긴다. 여기서 2번째로 큰 수란, 정사각형의 네 원소를 크기순으로 a4 ≤ a3 ≤ a2 ≤ a1 라 했을 때, 원소 a2를 뜻한다. 2번 과정에 ..

백준 2023.08.14

[Python] Pandas 인덱싱 하는 법 정리

0. 다음과 같은 Dataframe이 있다고 가정 1. 인덱스 사용하기 for i in range(df.shape[0]): print(i) >>> 0 1 2 3 4 2. 인덱스를 사용하여 cell에 접근하기 for i in range(df.shape[0]): print(df.iloc[i][0]) >>> 1 2 3 4 5 3. 기존 Dataframe에서 정보를 추출하여 새 Dataframe 만들기 box = [] box2 = [] for i in range(df.shape[0]): box.append(df.iloc[i][0]) box2.append(df.iloc[i][2]) newDf = pd.DataFrame(zip(box,box2)) >>> df2 = pd.DataFrame(columns=df.colu..

Python 2023.08.11

[Python] 경사도 자동 크롤링 코드

경사도와 관련한 공공데이터들 파일 확장자가 shp등이어서, 자동 크롤링 코드를 짜는 것이 빠를 것 같아 제작하게 되었다. 아래의 사이트에서 크롤링 하려 한다. 크롤링은 법적 책임을 질 수 있기에 되도록이면 안 하고 싶지만 API 를 능수능란하게 사용하는 법을 알기 전까지는 수익성이 없을 때에 한하여 몇번 더 진행할 것 같다 .. https://webgis.neins.go.kr/popup/searchGCadastralPopup.do 국토환경성평가지도 webgis.neins.go.kr 18번째 줄 k.send_keys 부분에 주소를 입력하면 해당 주소의 경사도가 크롤링된다. 지번 주소건 도로명 주소건 상관없다. from selenium import webdriver from selenium.webdriver..

Python 2023.07.24

코딩 테스트에서 유용한 표준 라이브러리

출처 : 나동빈님 유튜브 itertools : 순열(permutations)과 조합(combinations) 사용 시 heapq : heap 자료구조 제공, 우선순위 큐 기능 구현하기 위해 사용 bixect : 이진 탐색 기능 제공 collections : 덱, 카운터(Counter) 등 유용한 자료구조 포함 math : 필수적인 수학적 기능 제공(ex. 팩토리얼, 제곱근, 최대공약수, 삼각함수 관련 함수 및 파이값)

백준 2023.07.21

복잡도

출처 : 나동빈 님 유튜브 ㅁ 시간복잡도 : 특정한 크기의 입력에 대하여 알고리즘의 수행 시간 분석 ㅁ 공간복잡도 : 특정한 크기의 입력에 대하여 알고리즘의 메모리 사용량 분석 ㅁ Big - O 표기법이란? 가장 빠르게 증가하는 항만을 고려한 시간복잡도 표기법 ex1) 연산 횟수가 4n^2 + 5n + 6 일 경우, O(N^3)과 같이 표기 ex2) 다음과 같은 경우, box = [1,2,3,4,5] for i in box: for j in box: cell = i * j print( cell ) O(N^2)와 같이 표기 ㅁ 시간제한이 1초인 문제를 만났을 때, N의 범위가 500인 경우 : 시간 복잡도가 O(N^3) N의 범위가 2000인 경우 : 시간 복잡도가 O(N^2) N의 범위가 100000인 ..

백준 2023.07.21

백준 #2231

주의할 점 1. 입력이 1, 8 등일때 1같은건 0이 나와야 하고 8같은건 4가 나옴(4+4) 문제 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 된다. 따라서 245는 256의 생성자가 된다. 물론, 어떤 자연수의 경우에는 생성자가 없을 수도 있다. 반대로, 생성자가 여러 개인 자연수도 있을 수 있다. 자연수 N이 주어졌을 때, N의 가장 작은 생성자를 구해내는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 출력 첫째 줄에 답을 출력한다. 생성자가 없는 경우에는 0을 출력한다..

백준 2023.07.16

[Python] Pandas에서 파일 데이터 조작

ㅁ 데이터 불러오기 0. 공통 import pandas as pd import os try: os.chdir("C:/Users/gykwa_u2aecfe/OneDrive/바탕 화면/sample_data") # 사용하고자 하는 txt 문서가 있는 파일 이름까지 입력 print("Directory changed") except OSError: print("Cannot change the current working directory") 1. txt pd.read_table("people.txt", sep= ' ', header = 0, encoding="UTF-8") #txt 이름, 셀 구분 기준, 행, 인코딩 순서 2. xlsx pd.read_excel('Financial Sample.xlsx') 3. cs..

Python 2023.07.13

백준 #7568

기억할 것 1. 초기값을 1로 설정하기 2. 등호 사용하지 않기(본인하고 똑같은 키와 몸무게인 사람이 count 되는 것 방지) 문제 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩치가 각각 (x, y), (p, q)라고 할 때 x > p 그리고 y > q 이라면 우리는 A의 덩치가 B의 덩치보다 "더 크다"고 말한다. 예를 들어 어떤 A, B 두 사람의 덩치가 각각 (56, 177), (45, 165) 라고 한다면 A의 덩치가 B보다 큰 셈이 된다. 그런데 서로 다른 덩치끼리 크기를 정할 수 없는 경우도 있다. 예를 들어 두 사람 C와 D의..

백준 2023.07.11