일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- level0
- BOJ
- 그리디
- 브루트포스
- 가상메모리
- 수학
- level2
- 가상메모리 관리
- N과M
- programmers
- 프로그래머스
- python
- level1
- BFS
- 운영체제
- 에라스토테네스의 체
- 다이나믹 프로그래밍
- 구현
- 코딩테스트
- MYSQL
- 재귀
- level3
- 딕셔너리
- 스택
- 힙
- 백준
- dfs
- 파이썬
- DP
- 다익스트라
- Today
- Total
목록코테/BOJ (213)
동캄의 코딩도장
https://www.acmicpc.net/problem/2960 import math# N, K 값을 입력받음N, K = map(int, input().split())# 2부터 N까지의 숫자를 집합으로 생성lst = set([i for i in range(2, N + 1)])# 소수 판별 함수 (에라토스테네스의 체를 사용하지 않음)def is_prime_num(num): # 2부터 √num까지 나누어 떨어지는지 확인 for i in range(2, int(math.sqrt(num)) + 1): if num % i == 0: # 나누어 떨어지면 소수가 아님 return False return True # 나누어 떨어지지 않으면 소수cnt = 0 # 제..
https://www.acmicpc.net/problem/6359 #백준 6359 술취한 상범T=int(input())rooms=[False for _ in range(101)]ans=[[0]]for k in range(1,101): for i in range(0,101,k): rooms[i]=not rooms[i] ans.append(rooms)for _ in range(T): N=int(input()) print(sum(rooms[1:N+1]))
https://www.acmicpc.net/problem/11563 #백준 11563 소인수분해N=int(input())ans=[]while N!=1: for i in range(2,N+1): if N%i==0: N//=i ans.append(i) breakfor a in ans: print(a)
https://www.acmicpc.net/problem/1520 문제를 해결하는데 많이 헤맸다. 뭔가 BFS와 DP를 같이 이용하면 될듯싶어서 해결하려고 하였으나, 생각보다 쉽진 않았다. BFS와 우선순위 큐로 문제를 해결하였다.#백준 1520 내리막 길import sysfrom collections import deque# 4방향 이동을 위한 방향 벡터 (오른쪽, 왼쪽, 아래, 위)dr = [0, 0, 1, -1]dc = [1, -1, 0, 0]# 입력 받기 (N: 행, M: 열)N, M = map(int, sys.stdin.readline().split())# 지도 정보 저장maps = []for _ in range(N): maps.append(list(map(int, sys.stdin.re..
https://www.acmicpc.net/problem/2302 # 최종 정답을 저장할 변수ans = 1 # 전체 좌석 개수 N 입력N = int(input()) # VIP 좌석 개수 M 입력M = int(input()) # DP 배열 선언 (각 크기에 대해 가능한 좌석 배치 경우의 수 저장)dp = [0 for _ in range(101)] # 기본적인 피보나치 초기값 설정 (1개 좌석일 때 1가지, 2개 좌석일 때 2가지 경우)dp[0] = 1 # 빈 좌석 (계산 편의상 1로 설정)dp[1] = 1 # [O] → 한 가지 방법dp[2] = 2 # [OO], [XX] → 두 가지 방법# DP를 이용해 n개의 좌석을 배치할 수 있는 경우의 수 계산# 피보나치 수열을 따름: dp[i] = d..
https://www.acmicpc.net/problem/1495 생각보다 아이디어가 빨리 떠올라 쉽게 풀었다.#백준 1495 기타리스트from collections import dequeN,S,M=map(int,input().split())Vol=list(map(int,input().split()))times=[[-1 for _ in range(M+1)] for _ in range(N+1)]times[0][S]=Sfor i in range(1,N+1): for j in range(M+1): if times[i-1][j]!=-1: if j+Vol[i-1]=0: times[i][j-Vol[i-1]]=j-Vol[i-1]print(max(time..