본문 바로가기
반응형

파이썬109

[프로그래머스] 연속 펄스 부분 수열의 합 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.
[프로그래머스] 혼자서 하는 틱택토 Python 풀이 문제 틱택토는 3x3에서 하는 3목이라고 보면 된다. 구현 O와 X의 가로와 세로, 대각선 라인의 완성된 3목의 수를 각각 세어서 가능한 상황인지 판단해야 한다. 코드 def solution(board): strboard = ''.join(board) valid = strboard.count('O')-strboard.count('X') if valid not in [0,1]: return 0 colboard = list(zip(*board)) ocnt=0 xcnt=0 for i in range(3): if colboard[i].count('O')==3 or board[i].count('O')==3: ocnt+=1 if colboard[i].count('X')==3 or board[i].count('X').. 2023. 3. 9.
[프로그래머스] 대충 만든 자판 Python 풀이 오늘은 프로그래머스 최신 문제들을 다뤄보려고 한다. 먼저 대충 만든 자판이다. 문제 구현 반복문을 각각 사용해서 문제 그대로를 구현할 수 있다. 타겟 문자열을 돌고 타겟 알파벳을 보고 keymap에서 찾는 방식으로 먼저 구현해 보겠다. 코드 def solution(keymap, targets): answer = [] for t in targets: #타겟 문자열 cntsum=0 for c in t: #타겟문자열의 각 알파벳 flag = False cnt=float('inf') for key in keymap: idx = key.find(c) if idx == -1: continue cnt = min(cnt, idx+1) flag=True if flag: cntsum+=cnt else: answer.app.. 2023. 3. 9.
반응형