반응형 python93 [프로그래머스] 택배 배달과 수거하기 Python 풀이 문제 택배를 배달하고 효율적으로 수거하는 방법을 구하는 문제다. 구현 최대한 먼 곳부터 처리하는 것이 효율적이기 때문에 deliveries, pickups 리스트를 뒤집고 시작할 것이다. 그러고 맨뒤부터 차례대로 배달과 수거를 미리 계산하도록 구현하면 되는 간단한 문제다. 코드로 보면 이해가 쉬울 것이다. 코드 def solution(cap, n, deliveries, pickups): answer=0 d,p=0,0 deliveries.reverse() pickups.reverse() for i in range(n): d+=deliveries[i] p+=pickups[i] while d>0 or p>0: d-=cap p-=cap answer += (n-i)*2 return answer 여기서 d와 p는 .. 2023. 6. 29. [파이썬] input() vs sys.stdin.readline() 반복문 안에서 입력을 받을 때 input()과 sys.stdin.readline()의 시간 차이가 많이 난다고 한다. 그래서 이 두 기능이 어떻게 다른 지 정리해보려고 한다. 우선 참고한 사이트는 아래와 같다. https://www.geeksforgeeks.org/difference-between-input-and-sys-stdin-readline/ Difference between input() and sys.stdin.readline() - GeeksforGeeks A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming artic.. 2023. 6. 14. [프로그래머스] 배열 조각하기 Python 풀이 문제 사실 어려운 문제가 아닌데 정답률이 낮게 되어 있어서 후다닥 블로그로 정리를 해봤다. 구현 s(start), e(end) 포인터 두 개를 조작하면서 마지막에 slice를 반환하도록 구현을 할 것이다. query 배열을 index 가지고 돌면서 s와 e를 각각 조작해 주면 된다. 아예 slice로 다 해도 되지만 성능상 좋지 않아서 이렇게 설계를 했다. 코드 def solution(arr, query): s,e=0,0#0,len(arr) for i in range(len(query)): if i%2: s+=query[i] else: e=s+query[i] return arr[s:e] if s!=e else [-1] 사실 e도 arr의 길이로 초기화해주어야 하는 게 정상적이지만 초반에 습관적으로 0,0.. 2023. 4. 21. [프로그래머스] 두 원 사이의 정수 쌍 Python 풀이 문제 구현 시간 효율은 나와있지 않아 모두 구해도 되겠지만 원의 특성상 1,2,3, 4분면의 형태가 같기에 1 사분면에서만 점의 개수를 구해주고 *4를 해주도록 한다. 겹치기 않게 x는 1부터 r2까지 확인하면서 구하고 y의 최대 최소 좌표를 계산한다. x**2+y**2=r**2 이므로 y**2 = r**2-x**2이다. 양 변에 루트를 씌워주면 y값을 구할 수 있다. y(r2)-y(r1) 사이의 모든 정수를 구하면 된다. 추가적으로 x가 r1보다 커지는 상황에서는 y(r1) 상관없이 최대 좌표까지의 모든 정수를 더해주면 된다. 코드 def solution(r1, r2): answer = 0 for x in range(0,r2): max_y = (r2**2-x**2)**0.5 min_y = 0 if x>.. 2023. 4. 17. 이전 1 2 3 4 ··· 24 다음 반응형