본문 바로가기

반응형

백준

[백준]14888번 연산자 끼워넣기 파이썬 N = int(input()) nums = list(map(int, input().split())) add, sub, mul, div = map(int, input().split()) min_, max_ = 1e9, -1e9 def dfs(i, res, add, sub, mul, div): #global max_, min_ if i == N: max_ = max(res, max_) min_ = min(res, min_) return else: if add: dfs(i+1, res+nums[i], add-1, sub, mul, div) if sub: dfs(i+1, res-nums[i], add, sub-1, mul, div) if mul: dfs(i+1, res*nums[i], add, sub, mul-.. 더보기
[백준]N과 M(2) 15650번 파이썬 from itertools import combinations N, M = map(int, input().split()) num_list = [i for i in range(1, N+1)] for num in combinations(num_list, M): for i in num: print(i, end = ' ') print(end = '\n') 더보기
[백준알고리즘] 15652번 N과M(4) 파이썬 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 M개를 고른 수열 같은 수를 여러 번 골라도 된다. 고른 수열은 비내림차순이어야 한다. 길이가 K인 수열 A가 A1 ≤ A2 ≤ ... ≤ AK-1 ≤ AK를 만족하면, 비내림차순이라고 한다. 입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. +조합 blog.naver.com/PostView.nhn?blogId=honeyeah&logNo=22.. 더보기
[백준알고리즘] 2447번 별찍기 파이썬 문제 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. *** * * *** 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 하나씩 있는 패턴이다. N이 3보다 클 경우, 크기 N의 패턴은 공백으로 채워진 가운데의 (N/3)×(N/3) 정사각형을 크기 N/3의 패턴으로 둘러싼 형태이다. 예를 들어 크기 27의 패턴은 예제 출력 1과 같다. 입력 첫째 줄에 N이 주어진다. N은 3의 거듭제곱이다. 즉 어떤 정수 k에 대해 N=3^k이며, 이때 1 ≤ k < 8이다. 출력 첫째 줄부터 N번째 줄까지 별을 출력한다. 예제 27을 넣어서 진짜 27줄이 출력됨을 확인할 수 있다. 3의 3승이므로 가.. 더보기
[백준알고리즘] 2740번 행렬곱셈 파이썬 예제를 보면 이렇게 곱함을 확인할 수 있다. +행렬 곱셈 모르는 사람을 위해 blog.naver.com/PostView.nhn?blogId=dhkdwnddml&logNo=220277510428&parentCategoryNo=9&categoryNo=&viewDate=&isShowPopularPosts=true&from=search [#3]경제수학, 행렬; 행렬과 행렬의 연산 [2020.03.07 추가](자막을 켜고 보면 이해에 좋습니다.) 행렬은 직사각 모양의 틀 안에 숫자들이 배열된 ... blog.naver.com N,M = map(int,input().split()) matrix1 = [] for _ in range(N): matrix1.append(list(map(int,input().split().. 더보기
[백준알고리즘] 11651번 좌표정렬하기2 파이썬 python 요약 : 그냥 y를 증가하는 순으로 나열한다. 만약 y좌표가 같을 경우 x를 우선순위에 둔다. 처음 짠 코드 import sys num = int(sys.stdin.input()) arr = [] for _ in range(num): arr = list(map(int, sys.stdin.input().split())) arr.sort(key=lambda x:(x[1], x[0])) for i in range(arr): print(i[0], i[1]) 근데 계속 런타임 에러가 뜬다. 이 문제 때문에 sys를 쓴건데 이러니 당황스러웠다. 해결 import sys num = int(sys.stdin.readline()) arr = [] for i in range(num): arr.append(list(map(.. 더보기
[백준알고리즘] 3009번 네번째점 파이썬 예를 들어 이렇게 직사각형의 세 점의 좌표가 주어졌다고 쳐보자. 그럼 주어진 점 중 2개의 y좌표가 같을 것이고, 2개의 x좌표가 같을 것이다. 그럼 주어지지 않은 점의 x와 y좌표는 지금까지 1개 나왔던 x좌표랑 y좌표가 됨을 알 수 있다. x_ = [] y_ = [] for _ in range(3): x, y = map(int, input().split()) x_.append(x) y_.append(y) for i in range(3): if(x_.count(x_[i])==1): x = x_[i] if(y_.count(y_[i])==1): y = y_[i] print(x,y) 그래서 3번 동안 리스트를 구성하고 count를 통해 한번 나온 값이면 그걸 좌표로 선언해주면 된다. 더보기
[백준알고리즘]1966번 프린터큐 python, 파이썬 문제: 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다. 현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를 확인한다. 나머지 문서들 중 현재 문서보다 중요도가 높은 문서가 하나라도 있다면, 이 문서를 인쇄하지 않고 Queue의 가장 뒤에 재배치 한다. 그렇지 않다면 바로 인쇄를 한다. 예를 들어 Queue에 4개의 문서(A B C D)가 있고, 중요도가 2.. 더보기

반응형