Algorithm

나름 자신있게 구글링해서 풀면 되겠지하고 코드트리 릴레이문제 풀기에 들어갔다첫번째 문제는 무난하게 풀었는데 두번째 문제가 자료구조를 사용해서 그리드알고리즘 방식으로 푸는 문제였는데쉽지 않았다.문제에 저작권이 있는지 모르겠어서 일단 포스팅에 포함하지 않겠다.무튼 딱 풀었을 때 만점이 안나오더라, 코드트리의 장점이 틀린 테스트 케이스를 공개해준다는 건데 테스트 케이스가 너무 커서 윤곽이 안보이더라,, 그래서 아우.. 왜 틀렸는지 잘 모르겠더라..그래서 문제 유형을 좀 보고 우선순위 큐라고 되어 있길래 우선순위 큐로 바꾸어서 풀었음에도 만점이 안나오더라....그래서 ..! 그래서...! 결국 해답을 봤다.(이게 시간적 이득이긴함.. 할만큼 했음)근데 아 최소힙으로 간단하게 풀 수 있었던 문제였다.... 평소에..
코딩 테스트 언젠간 해야할 숙제 사실 요즘에 머신러닝과 딥러닝을 공부를 나름 야무지게 하고 있어서 다른거 하기 싫긴 하지만... 요즘 같이 여유 있을때 기반을 잡아 놔야좋을 듯하다. 그래도 파이썬을 통해서 알고리즘 문제를 풀는 것은 넘파이를 숙련하는데 도움이 될 것이다.(아마도?) 나름 컴공 3학년까지 마친 입장에서 이걸 아직도 안했다는게 좀 부끄럽다. 공익이니깐 공익 때 해야지 미뤄둔 코딩테스트 끝장 본다 목표는 백준을 기준으로 정형화된 유형의 골드 수준의 문제는 다 풀 수 있고 좀 더 플레 수준의 문제도 찝적댈 수 있는 정도로 가보자 그래도 학부 수업을 통해서 기본적은 알고리즘은 찌끄려 봤기에 어느 정도 개념을 재정비하고 파이썬으로 문제를 풀이하는 숙련도 높이는 느낌으로 하면 될 듯하다. 공부계획은 ..
파이썬 제공 함수 최대공약수 최소공배수 아스키코드 팩토리얼 리스트 누적곱 10진수 변환 최대공약수: 두 수의 최대공약수를 반환하는 함수이다. math 모듈에 있는 gcd 함수를 사용하면 된다. 예를 들어, 12와 18의 최대공약수는 6이다. import math print(math.gcd(12, 18)) # 6 최소공배수: 두 수의 최소공배수를 반환하는 함수이다. math 모듈에 있는 lcm 함수를 사용하면 된다. 예를 들어, 12와 18의 최소공배수는 36이다. import math print(math.lcm(12, 18)) # 36 아스키코드: 문자를 아스키코드로 변환하는 함수이다. ord 함수를 사용하면 된다. 예를 들어, 'A'의 아스키코드는 65이다. print(ord('A')) # 65 팩토리..
dp문제 시간 초과 계속 나와서 당황스러웠다... 함수로 묶어주니깐 시간 초과 안나왔음! def sol(): N,K=map(int,input().split()) dp=[[0]*(K+1) for _ in range(N+1)] w=[0] v=[0] for n in range(1,N+1): a,b=map(int,input().split()) w.append(a) v.append(b) for i in range(1,N+1): for j in range(1,K+1): dp[i][j] = dp[i-1][j]; if j-w[i]>=0: dp[i][j]=max(dp[i-1][j],dp[i-1][j-w[i]]+v[i]) print(dp[N][K]) sol() 코드 훈수 환영합니다!!
최단거리 구하기 문제 당연하게도 DFS로 풀었다. 처음에 while문에 무한반복되면 자동으로 멈추라고 적당히 종료조건 넣었다가.... 까먹고 "맞는거같은데.. 뭐지?" 하면서 삽질했다... 꾸준히 코딩안한 벌인듯... from collections import deque dq= deque([]) n,m= map(int, input().split()) arr=[list(map(int, input().split())) for _ in range(n)] visit=[[0]*m for _ in range(n)] result=[[0]*m for _ in range(n)] def range_out(x,y): if x=n or y=m or arr[x][y]==0 or visit[x][y]==1: return Fals..
comoZ
'Algorithm' 카테고리의 글 목록