본문 바로가기
반응형

파이썬112

[파이썬] 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 풀이 문제 이 입출력 예 설명을 보면 이해하기 쉬울 것이다. 구현 레벨 2로 되어 있지만 쉬운 문제다. 먼저 미사일을 정렬하는데 미사일이 끝나는 순서로 정렬을 한다. 그 후 제일 빨리 끝나는 미사일의 시작지점이 기존 요격지점보다 크다면 미사일을 요격하고 그 끝나는 지점을 저장한 후 answer에 1을 더해준다. 말로 하기에는 설명이 어려운데 코드로 보면 이해가 쉬울 것이다. 코드 def solution(targets): answer, end = 0, 0 for s, e in sorted(targets, key = lambda x : x[1]): if s>=end: end = e answer += 1 return answer 이렇게 end를 바꿔주면서 정답을 갱신해 주면 되는 쉬운 문제이다. 다른 풀이 아직까지.. 2023. 4. 17.
[프로그래머스] 두 원 사이의 정수 쌍 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.
반응형