코딩 테스트 언젠간 해야할 숙제 사실 요즘에 머신러닝과 딥러닝을 공부를 나름 야무지게 하고 있어서 다른거 하기 싫긴 하지만... 요즘 같이 여유 있을때 기반을 잡아 놔야좋을 듯하다. 그래도 파이썬을 통해서 알고리즘 문제를 풀는 것은 넘파이를 숙련하는데 도움이 될 것이다.(아마도?) 나름 컴공 3학년까지 마친 입장에서 이걸 아직도 안했다는게 좀 부끄럽다. 공익이니깐 공익 때 해야지 미뤄둔 코딩테스트 끝장 본다 목표는 백준을 기준으로 정형화된 유형의 골드 수준의 문제는 다 풀 수 있고 좀 더 플레 수준의 문제도 찝적댈 수 있는 정도로 가보자 그래도 학부 수업을 통해서 기본적은 알고리즘은 찌끄려 봤기에 어느 정도 개념을 재정비하고 파이썬으로 문제를 풀이하는 숙련도 높이는 느낌으로 하면 될 듯하다. 공부계획은 ..
Algorithm
파이썬 제공 함수 최대공약수 최소공배수 아스키코드 팩토리얼 리스트 누적곱 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..