본문 바로가기

분류 전체보기263

[프로그래머스] Lv2 - 빛의 경로 사이클 (파이썬) https://programmers.co.kr/learn/courses/30/lessons/86052 코딩테스트 연습 - 빛의 경로 사이클 각 칸마다 S, L, 또는 R가 써져 있는 격자가 있습니다. 당신은 이 격자에서 빛을 쏘고자 합니다. 이 격자의 각 칸에는 다음과 같은 특이한 성질이 있습니다. 빛이 "S"가 써진 칸에 도달한 경우, 직진 programmers.co.kr dx = [0, 1, 0, -1] dy = [1, 0, -1, 0] def solution(grid): global answer, visited global N, M answer = [] N = len(grid) M = len(grid[0]) visited = [[[False]*4 for _ in range(M)] for _ in r.. 2022. 4. 3.
[백준] 2295번 - 세 수의 합 (파이썬) # 세 수의 합 import sys input = sys.stdin.readline N = int(input()) arr = [int(input()) for _ in range(N)] arr.sort() arr_sum = set() for x in arr: for y in arr: arr_sum.add(x+y) def check(): global answer for i in range(N-1, -1, -1): for j in range(i+1): if arr[i]-arr[j] in arr_sum: answer = arr[i] return answer = 0 check() print(answer) 풀이 x + y + z = k 일 때, x + y = k - z 임을 이용해서 풀었다. 1. arr_sum :.. 2022. 4. 3.
[프로그래머스] Lv2 - 튜플 (파이썬) https://programmers.co.kr/learn/courses/30/lessons/64065 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr import re def solution(s): result = re.findall('[{][\d,]+[}]', s) result.sort(key=lambda x: len(x)) answer = [] now = set() for x in result: next = set(list(x[1:-1].split(','.. 2022. 4. 2.
[프로그래머스] Lv2 - 수식 최대화 (파이썬) https://programmers.co.kr/learn/courses/30/lessons/67257 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr from itertools import permutations as perm from collections import deque def solution(expression): answer = 0 for priority in list(perm(['+', '-', '*'], 3)): answer = max(answer, abs(make_result(priorit.. 2022. 4. 2.
[백준] 17396번 - 백도어 (파이썬) # 백도어 import heapq import sys input = sys.stdin.readline N, M = map(int, input().split()) cant_go = list(map(int, input().split())) cant_go[-1] = 0 arr = [[]for _ in range(N)] for _ in range(M): a, b, cost = map(int, input().split()) arr[a].append((cost, b)) arr[b].append((cost, a)) dist = [sys.maxsize] * N def dijkstra(): q = [] heapq.heappush(q, (0, 0)) dist[0] = 0 while q: cost, node = heapq... 2022. 4. 2.
[프로그래머스] Lv2 - 거리두기 확인하기 (파이썬) https://programmers.co.kr/learn/courses/30/lessons/81302 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr from collections import deque dx = [0, 1, 0, -1] d.. 2022. 4. 1.
[프로그래머스] Lv2 - 괄호 변환 (파이썬) https://programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr def solution(p): # 1 if p == '': return p # 2 u, v = divide(p) # 3 if check(u): return u + solution(v) # 4 else: temp = '('+solution(v)+')' for x in u[1:-1]: if x == '(': temp += ')' else: temp += '(' ret.. 2022. 4. 1.