본문 바로가기
반응형

Coding Test122

[프로그래머스] 배열 조각하기 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.
[Codility] Pi Code Challenge Python 오랜만에 Codility Challenge에 도전해 봤다. 다음 링크로 접속하면 코딜리티 챌린지에 도전할 수 있다. https://app.codility.com/programmers/challenges/ Pi Code Challenge challenge Show your skills! app.codility.com 120분이 주어지고 웬만한 언어는 모두 사용할 수 있다. 결과는 아쉽게 silver award를 받았다. 결국 golden award를 받아냈다 https://app.codility.com/cert/view/certGZCQDP-F9SNH7TKQMAH37EG/ 문제 설명 영어 울렁증이 있는 분들을 위해 문제 설명을 하면 알파벳으로 된 P, Q 두 문자열이 주어지고 결과 문자열 S를 만들어 S에서.. 2023. 4. 14.
반응형