전체 글 144

SWEA 5250. 최소비용 [Python]

문제 : 최소비용 난이도 : D3 언어 : python 문제 링크 : https://swexpertacademy.com/main/learn/course/lectureProblemViewer.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com def bfs(y, x): visited[y][x] = 0 queue = [] queue.append((y, x)) while queue: cy, cx = queue.pop(0) for dy, dx in [(1, 0), (-1, 0), (0, 1), (0, -1)]: ny, nx = cy + dy, cx + dx if 0

SWEA 2022.04.05

백준 1931. 회의실 배정 [Python]

문제 : 회의실 배정 난이도 : 실버 2 언어 : Python 문제 링크 : https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 문제 한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자. 단, 회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 회의의 시작시간과 끝나는 시간이 같을 수도 있다. 이 경우에는 시작하자마자 끝..

BOJ 2022.03.31

[병합 정렬, 퀵 정렬, 이진 탐색, 백트래킹, 트리]

TIL_0330 MergeSort 반으로 쪼개고-> 나중에 합쳐서 정렬! 그림처럼 반으로 계속해서 쪼개다보면 결국 1개의 원소만 남고 이들을 비교하여 작은 값 부터 새로운 리스트에 저장을 하는 방식. def merge(left, right): lp = rp = 0 result = [] while lp < len(left) and rp < len(right): if left[lp] < right[rp]: result.append(left[lp]) lp += 1 else: result.append(right[rp]) rp += 1 while lp < len(left): result.append(left[lp]) lp += 1 while rp < len(right): result.append(right[rp]..

TIL 2022.03.31

백준 2309. 일곱 난쟁이 [Python]

문제 : 일곱 난쟁이 난이도 : 브론즈 2 언어 : Python 문제 링크 : https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net lst = [] for i in range(9): a = int(input()) lst.append(a) for i in range(1

BOJ 2022.03.29

백준 2798. 블랙잭 [Python]

문제 : 블랙잭 난이도 : 브론즈 2 언어 : Python 문제 링크 : https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net def f(n, k, m): global black global ssum if n == k: if sum(black) == M or sum(black) > ssum and sum(black)

BOJ 2022.03.29

백준 10870. 피보나치 수 5 [Python]

문제 : 피보나치 수 5 난이도 : 브론즈 2 언어 : Python 문제 링크 : https://www.acmicpc.net/problem/10870 10870번: 피보나치 수 5 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net def fibo(n): if n == 1: return 1 elif n == 0: return 0 else: return fibo(n-2) + fibo(n-1) N = int(input()) print(fibo(N)) 단순 재귀문제

BOJ 2022.03.29

SWEA 1486. 장훈이의 높은 선반 [Python]

문제 : 장훈이의 높은 선반 난이도 : D4 언어 : Python 문제 링크 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV2b7Yf6ABcBBASw&categoryId=AV2b7Yf6ABcBBASw&categoryType=CODE&problemTitle=1486&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1&&&&&&&&& def bfs(n, ssum): global ans if ssum >= B + ans: return ans if n == N: if ssum >= B and ssum - B < ans: an..

SWEA 2022.03.27

SWEA 4615. 재미있는 오셀로 게임 [Python]

문제 : 재미있는 오셀로 게임 난이도 : D3 언어 : Python 문제 링크 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWQmA4uK8ygDFAXj&categoryId=AWQmA4uK8ygDFAXj&categoryType=CODE&problemTitle=%EC%98%A4%EC%85%80%EB%A1%9C&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1&&&&&&&&& def check(y, x): for dy, dx in [(1, 0), (-1, 0), (0, 1), (0, -1), (1, 1), (1, -1),..

SWEA 2022.03.27
LIST