본문 바로가기

[Algorithm] 백준 BOJ 2467 용액 python 파이썬 투포인터 골드5 Private 난이도 : ♥♥♡♡♡ 2467번: 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하의 정수이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 오름차순으로 입력되며, 이 수들은 모두 - www.acmicpc.net n=int(input()) seq=list(map(int,input().split(' '))) start=0 end=n-1 candidate=list() # [더한 특성값, 그 때 용액 1, 그 때 용액 2] while start0: # 0에 가까워져야 하니 작아져야함 end-=1 else: start+=1 # 0에 가까워져야 하니 커져야함 candidate.sort() # 특성값이 작은 것부터 sort됨 -> 특성값이 ..
[Algorithm] 백준 BOJ 1477 휴게소 세우기 python 파이썬 이분탐색 골드 4 Private 난이도 : ♥♥♥♥♡ 1477번: 휴게소 세우기 첫째 줄에 현재 휴게소의 개수 N, 더 지으려고 하는 휴게소의 개수 M, 고속도로의 길이 L이 주어진다. 둘째 줄에 현재 휴게소의 위치가 공백을 사이에 두고 주어진다. www.acmicpc.net import sys input=sys.stdin.readline n,m,l=map(int,input().rstrip().split(' ')) rest=[l] # 맨 마지막 길이까지 고려해야 함 if n!=0: # n=0일때 입력이 개행만 들어오는 것 처리 -> 런타임에러(Value Error)의 원인 x=list(map(int,input().rstrip().split(' '))) rest=rest+x rest.sort() low=1 high=l-1 ..
[Algorithm] 백준 BOJ 5904 Moo 게임 python 파이썬 분할정복 골드 5 Private 난이도 : ♥♥♥♡♡ 5904번: Moo 게임 Moo는 술자리에서 즐겁게 할 수 있는 게임이다. 이 게임은 Moo수열을 각 사람이 하나씩 순서대로 외치면 되는 게임이다. Moo 수열은 길이가 무한대이며, 다음과 같이 생겼다. m o o m o o o m o o m o o o www.acmicpc.net n=int(input()) def find_moo(partition,k,n): # [10,15,25], 2, 11 if k==0: # 가장 작은 단위일 때 if n==1: return 'm' else: return 'o' if n
[Pandas, Numpy] NaN, nan 을 대처하는 법 이렇게 데이터를 봤을 때 NaN인 데이터를 확인하고 싶었다 이렇게 찍어봤을 때는 nan이 나왔다 그래서 if data[i].iloc[j,14]==nan 이런 식으로 확인하고 싶었는데 잘 되지 않아서 몇 가지 실험을 했다. print(type(data[0].iloc[23,14])) print(data[0].iloc[23,14] == np.nan) print(data[0].iloc[23,14] == np.NaN) print(data[0].iloc[23,14] == None) print(data[0].iloc[23,14] == 0.0) print(data[0].iloc[23,14] == float("nan")) print(data[0].iloc[23,14] == float("NaN")) # print(data..
[Algorithm] 백준 BOJ 1074 Z python 파이썬 분할정복 실버1 Private 난이도 : ♥♥♥♡♡ 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net 시간초과 코드 n,r,c=map(int,input().split(' ')) size=2**n graph=[[0 for _ in range(size)] for _ in range(size)] cnt=0 dr=[0,0,1,1] dc=[0,1,0,1] def divide(r,c,size): global cnt if size==2: for i in range(len(dr)): graph[r+dr[i]][c+dc[i]]=cnt..
연속형 변수를 binning(구간을 나누어 그룹)하여 범주형으로 변형 : Binning Records on a Continuous Variable with Pandas Cut and QCut 번역 https://towardsdatascience.com/binning-records-on-a-continuous-variable-with-pandas-cut-and-qcut-5d7c8e11d7b0 Binning Records on a Continuous Variable with Pandas Cut and QCut When, why, and how to transform a numeric feature into a categorical feature towardsdatascience.com 해당 글을 참고, 번역한 글입니다. 연속형 변수를 binning(구간을 나누어 그룹지음)하는 것에 대해서 생각해보자 Binning할 때 주의할 점 granularity(얼마나 자세히 분할되어 있는지)가 줄어든다. 당연히..
이분탐색 : 이진탐색 : Binary Search 틀/템플릿 # mid 라는 값으로 주어진 문제를 해결할 수 있는지 확인 def is_possible(mid): pass # 이분탐색을 진행할 구간 지정 lo = 0 hi = 1e9 answer = lo # 이분탐색 start # 1] 최대중에 최소 찾기 -> 가능하면 범위를 낮춰가기 while lo 가능하면 범위를 높혀가기 while lo
입력의 갯수에 따른 시간복잡도 한계 : 시간초과 계산 BigO 시간 N n**2 1000 ~ 5000 nlogn ~10만 n ~1000만 이분탐색 ~100억 Python은 1초에 2000만번정도 연산 한다고 생각하면 된다 n이 천만 ~ 1억 단위 => O(N) 으로 풀어라. N이 만 ~ 천만 단위 => O(NLOGN)으로 풀어라. N이 천 단위 => O(N^2) 으로 풀어라. N이 백 단위 => O(N^3)~ O(N^4) 진짜 이상하게만 하지 말고 풀어라. N 이 10~30 => 브루트포스해라(다 돌리면 됨)