반응형 프로그래머스111 [프로그래머스] 가장 많이 받은 선물 python 풀이 문제 카카오 겨울 인턴십 기출문제로 난이도는 낮지만 정답률도 낮은 문제라 가져와 봤다. 구현 시뮬레이션은 쉽지만 어떤 타입의 변수에 입력값들을 담아야 할지가 이 문제의 키라고 생각한다.모두 배열로 만들어 매번 배열의 index를 찾게 하는 것보다는dict에 담아서 조금 더 시간의 효율을 얻고 싶었다. 아래 코드에서 살펴보자코드 f에 각 이름 별 index를 담았고나머지는 리스트에 다 담았다. 시뮬레이션 로직은 최 하단의 for문 밖에 없어서 문제 자체는 쉽다.그래서 어떤 data type을 사용할지가 중요한 문제라고 생각된다.다른 풀이 많은 사람들이 이 방식으로 풀었고, 더 좋은 방식은 보이지 않아서 다른 풀이는 가져오지 않았다. 2024. 12. 21. [프로그래머스] 붕대 감기 python 풀이 문제 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/250137 구현 시간에 따라 반복하면 매우 비효율적이기 때문에attack 배열을 반복하면서 각 attack 사이의 delta 값을 위주로 계산해서 풀이 하려고 했다. 아래 코드를 보면 조금 더 쉽게 이해할 수 있을 것이다.코드 조금 잘리긴 했지만 설명을 하자면 각 attack time 간격을 계산해서 delta_time에 넣었다.공격당하기 전까지의 시간까지 회복할 수 있으니 -1을 해줬다.health의 최대치를 넘지 않게 해 주었고, 회복을 완료할만한 시간이 있었는지는 //연산으로 계산한 후 damage만큼 빼줬다. 계산식은 아래와 같다.health = min(max_healt.. 2024. 12. 20. [프로그래머스] 배열 조각하기 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. 이전 1 2 3 4 ··· 28 다음 반응형