반응형 python96 [프로그래머스] 덧칠하기 Python 풀이 문제 구현 문제가 꽤 긴데 사실 입출력 예를 보면 매우 간단한 문제다. 처음 색칠 안된칸부터 색칠해서 롤러를 칠하고 그 롤러의 길이 뒤부터 색칠이 안된곳을 찾아서 다시 칠해주면 된다. 코드 def solution(n, m, section): result=0 i=0 section = set(section) while i 0: temp = section[0] + m while len(section) != 0 and temp > section[0]: section.pop(0) answer += 1 return answer 벽 길이가 짧고 칠할게 많을 때는 원래 풀이가 좋지만 길이가 매우 길고 칠할구역이 적을 때 더 효율적인 코드라고 생각해서 써보았다. 칠할 구역이 남아있을 때까지를 while조건으로 잡고 se.. 2023. 4. 6. [프로그래머스] 과제 진행하기 Python 풀이 문제 구현 이 문제는 따로 쉽게 푸는 방법이 없는 것 같아 문제를 그대로 따라가면서 구현을 하면 된다. 우선 기본적으로 plans를 시간순서로 sorting 한 후 시작하는 게 좋다. 코드 def solution(plans): plans = sorted(plans, key=lambda x : x[1]) todostack = [] answer = [] nowtime = 0 beforetime = -1 for i in range(len(plans)): h,m = plans[i][1].split(':') plans[i][1] = int(h)*60+int(m) if i>0: remainingTime = plans[i][1] - plans[i-1][1] if remainingTime - int(plans[i-1].. 2023. 4. 6. [프로그래머스] 연속 펄스 부분 수열의 합 Python 풀이 문제 구현 sequence에 [-1, 1, -1, 1......] 을 곱한 pulse배열과 sequence에 [1, -1, 1, -1......] 을 곱한 revpulse배열을 준비한다. 여기서 편의를 위해 accumulate 함수를 사용할 건데 배열을 돌며 이전 값에 따른 처리(기본 덧셈)를 해주는 함수이다. 코드 부분에서 추가로 설명하겠다. 그렇게 되면 각 배열 인덱스에 더해진 값이 있을건데 그중의 max값을 리턴하면 된다. 코드 from itertools import accumulate def solution(sequence): pulse = [((-1)**(i%2))*sequence[i] for i in range(len(sequence))] revpulse = [i*-1 for i in puls.. 2023. 3. 24. [Codility] Carol of the Code Python (코드 업데이트) 파이썬으로 코딜리티 챌린지를 도전해봤다. 해당 챌린지가 종료되면 풀이를 올려보겠다. 챌린지가 종료되어 코드를 올려보겠다. 문제는 아래에 있다. https://app.codility.com/cert/view/cert7CAQA7-RVJBNWEEK67SVFHW/ Codility app.codility.com 풀이 코드는 아래와 같이 구현할 수 있다. # you can write to stdout for debugging purposes, e.g. # print("this is a debug message") def rotate(s, num): return s[num:]+s[:num] def ispretty(s1, s2): return True if s1[1] == s2[3] else False def solu.. 2023. 3. 13. 이전 1 2 3 4 5 6 7 ··· 24 다음 반응형