본문 바로가기
반응형

코드54

[프로그래머스] 행렬 테두리 회전하기 Python Code 프로그래머스 행렬 테두리 회전하기를 파이썬으로 풀어보겠다. 이번 문제의 난이도는 레벨 2고 2021년 문제다. 예전 문제와 비교를 해보면 최신 문제가 확실히 약간 더 난이도가 있다. 문제 행렬의 일부분에서 테두리만 시계방향 회전시키는 문제이다. 회전시킬 때 가장 작은 값을 결과에 더해주면 된다. 구현 다른 방법은 생각나지 않았다. 정직하게 2차원 리스트를 생성하고 쿼리를 읽어서 그 리스트의 부분을 회전시키면서 min값을 찾도록 했다. 코드 import math def solution(rows, columns, queries): arr = [] for i in range(rows): temp=[] for j in range(columns): temp.append((j+1)+(i*columns)) arr.a.. 2022. 9. 1.
[프로그래머스] 짝지어 제거하기 Python Code 프로그래머스 짝지어 제거하기를 파이썬으로 풀어보겠다. 난이도는 레벨 2다. 문제 문자열에 연속된 부분을 다 지우는 것이다. 구현 처음에는 while로 구현하고 반복되는 문자가 나올 때마다 삭제하고 뒤로 돌아갈까 생각했지만 여러 번 지워질 때 성능이 좋지 않아서 다른 방법을 고민했다. stack구조로 구현하는 게 제일 쉽고 효율성이 잘 나올 거라고 판단해서 stack구조를 사용했다. 반복문으로 문자열을 돌면서 stack의 top값과 같으면 pop을 하고 아니면 insert를 하는 방식을 선택했다. 코드 def solution(s): temp = [] temp.append(s[0]) for c in s[1:]: if temp and temp[-1]==c: temp.pop() else: temp.append(.. 2022. 8. 31.
[프로그래머스] 타겟 넘버 Python Code 프로그래머스 타겟 넘버를 파이썬으로 풀어보겠다. 이 문제는 레벨 2로 분류되어 있고 DFS, BFS로 풀이할 문제다. 문제 구현 어차피 완전 탐색이지만 BFS에 적응할 겸 BFS로 구현해보겠다. 코드 def solution(numbers, target): data = [0] for num in numbers: res = [] for val in data: res.append(val + num) res.append(val - num) data = res return data.count(target) data가 변화하는 flow를 [1,1,1]로 보겠다. [0] -> [1, -1] -> [2, 0, 0, -2] -> [3, 1, 1, -1, 1, -1, -1, -3] 이렇게 변하여 타겟 값이 몇 개인지 확인.. 2022. 8. 30.
[프로그래머스] 올바른 괄호 Python Code 프로그래머스 올바른 괄호를 파이썬으로 풀어보겠다. 이 문제도 레벨 2지만 예전 문제라 레벨 1에 가까운 듯하다. 문제 구현 flag 변수를 통해 괄호가 진행 중인지 여부를 판단할 수 있도록 했다. '('라면 +를 해주고 ')'라면 -를 해주어 -값이 되면 False를 리턴하고 끝나고 나서의 값이 0이면 True를 리턴할 수 있게 구현했다. 코드 def solution(s): flag=0 for c in s: if c == '(': flag+=1 else: flag-=1 if flag 2022. 8. 30.
반응형