[프로그래머스] Lv2 - n^2 배열 자르기 (파이썬)
https://programmers.co.kr/learn/courses/30/lessons/87390 코딩테스트 연습 - n^2 배열 자르기 정수 n, left, right가 주어집니다. 다음 과정을 거쳐서 1차원 배열을 만들고자 합니다. n행 n열 크기의 비어있는 2차원 배열을 만듭니다. i = 1, 2, 3, ..., n에 대해서, 다음 과정을 반복합니다. 1행 1열부 programmers.co.kr def solution(n, left, right): arr = [] for i in range(left, right+1): arr.append(max(i // n, i % n)+1) return arr 풀이 1. left부터 right까지 해당 index가 2차원 배열이었을 때의 (인덱스 값들 중 최댓..
2022. 5. 13.
[백준] 8980번 - 택배 (파이썬)
# 택배 import sys input = sys.stdin.readline N, W = map(int, input().split()) box_num = int(input()) box_info = [] for _ in range(box_num): start, end, num = map(int, input().split()) box_info.append((start, end, num)) box_info.sort(key=lambda x: (x[1])) result = 0 arr = [W for _ in range(N+1)] for x, y, num in box_info: num = min(num, min(arr[x:y])) if num != 0: for i in range(x, y): arr[i] -= nu..
2022. 5. 13.
[백준] 1039번 - 교환 (파이썬)
# 교환 from collections import deque N, K = map(int, input().split()) M = len(str(N)) def bfs(N, K): visited = set() visited.add((N, 0)) q = deque() q.append((N, 0)) answer = 0 while q: n, k = q.popleft() if k == K: answer = max(answer, n) continue n = list(str(n)) for i in range(M-1): for j in range(i+1, M): if i == 0 and n[j] == '0': continue n[i], n[j] = n[j], n[i] nn = int(''.join(n)) if (nn, ..
2022. 5. 4.
[프로그래머스] Lv2 - 모음사전 (파이썬)
https://programmers.co.kr/learn/courses/30/lessons/84512 코딩테스트 연습 - 모음사전 사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니 programmers.co.kr from itertools import product as pro def solution(word): result = [] for i in range(1,6): for x in pro(['A','E','I','O','U'], repeat=i): result.append(''.join(list(x))) result.s..
2022. 5. 3.
[프로그래머스] Lv2 - 전력망을 둘로 나누기 (파이썬)
https://programmers.co.kr/learn/courses/30/lessons/86971 코딩테스트 연습 - 전력망을 둘로 나누기 9 [[1,3],[2,3],[3,4],[4,5],[4,6],[4,7],[7,8],[7,9]] 3 7 [[1,2],[2,7],[3,7],[3,4],[4,5],[6,7]] 1 programmers.co.kr from collections import deque import sys def solution(n, wires): answer = sys.maxsize for i in range(len(wires)): new_wires = wires[:i] + wires[i+1:] arr = [[]for _ in range(n+1)] for x, y in new_wires: a..
2022. 5. 3.