본문 바로가기

전체 글

(148)
[백준/15655/파이썬] N과 M (6) 소스코드 n,m = list(map(int,input().split())) seq = list(map(int,input().split())) seq = sorted(seq) s = [] def dfs(start): if len(s) == m: print(' '.join(map(str,s))) return for i in seq: if i not in s and (i>=start): s.append(i) dfs(i) s.pop() dfs(1) 알고리즘 N과 M 시리즈 중 하나로 조건을 잘 설정해주면 된다. N과 M (5)에서 변형한 점은 and (i>=start) 이 부분인데 오름차순으로 정렬된 수열에서 앞 순번으로 삽입되는 원소들보다 크다는 조건을 넣어줘야 했다.
[백준/15654/파이썬] N과 M (5) 소스코드 ( itertools 사용 ) from itertools import permutations n,m = list(map(int,input().split())) s = list(map(int,input().split())) tmp = sorted(list(permutations(s,m))) for i in tmp: print(' '.join(map(str,i))) 소스코드 ( 재귀 사용 ) n,m = list(map(int,input().split())) seq = list(map(int,input().split())) seq = sorted(seq) s = [] def dfs(start): if len(s) == m: print(' '.join(map(str,s))) return for i in..
LookupError: No installed app with label 'admin'. 에러 프로젝트를 다 완성하고 포스팅을 복습하면서 올리려고 했는데 프로젝트 실행 도중 자꾸 LookupError: No installed app with label 'admin'. 에러가 떠서 해결 방법을 적으려고 한다. 1. 문제상황 구글링해보면 admin파일이 settings.py에 이런식으로 잘 쓰라고 나와있는데요 근데 다 써놨는데 애초에 건드리질 않았는데 에러가 나오는 것이에요... 2. 해결방법 저 같은 경우에는 'django_seed' 이 코드를 삭제하고 실행했더니 됐습니다. 테스트 코드 작성을 위한 앱인데 왜인진 모르겠습니다. 3. 에러가 난 이유 추측 3-1. 처음에 우분투에서 실행할 때 vs code 업데이트를 했는데 영향이 있었을까요? 3-2. 사용하지 않는 앱을 적으면 에러가 날까요? 등등 ..
[백준/15652/파이썬] N과 M (4) 소스코드 n,m = list(map(int,input().split())) s = [] def dfs(start): if len(s) == m: print(' '.join(map(str,s))) return for i in range(start,n+1): s.append(i) dfs(i) s.pop() dfs(1) 알고리즘 N과 M 시리즈는 시작점과 세부 조건 사항을 조금씩 바꿔가며 진행하면 되는 것 같다. N과 M (2) 코드와 크게 다르지 않음을 알 수 있다. https://codekunst.tistory.com/49
[백준/15651/파이썬] N과 M (3) 소스코드 n,m = list(map(int,input().split())) s = [] def dfs(start): if len(s)==m: print(' '.join(map(str,s))) return for i in range(1,n+1): s.append(i) dfs(i+1) s.pop() dfs(1) 알고리즘 N과 M (2)와 똑같은 알고리즘이다.(더 쉬운 느낌) start를 1로 바꿔주고 중복 허용해주면 된다! https://codekunst.tistory.com/49
[백준/15650/파이썬] N과 M (2) 소스코드 n,m = list(map(int,input().split())) s = [] def dfs(start): if len(s)==m: print(' '.join(map(str,s))) return for i in range(start,n+1): if i not in s: s.append(i) dfs(i+1) s.pop() dfs(1) 알고리즘 파이썬에 있는 기능인 itertools의 permutation을 사용해서 풀면 될 것 같았으나 문제의 취지에 맞게 백트래킹을 이용해서 풀려고 했다. 1부터 시작해서 s에 담고 for문을 돌면서 s에 포함되지 않은 애들을 삽입해 나가는 dfs 알고리즘이다. 그리고 조건을 만족하면 출력하고 다음 수열을 찾는다.
[백준/11057/파이썬] 오르막 수 - DP 소스코드 n = int(input()) dp = [1]*10 for i in range(1,n) : for j in range(1,10) : dp[j] += dp[j-1] print(sum(dp)%10007) 알고리즘 알고리즘을 설계하다 보니 너무 막막해서 한번씩 써보았다. 그랬더니 원하는 숫자를 구하기 위해서는 그 전 숫자와 그 전의 위 숫자를 더하면 된다는 규칙을 발견했다. dp라는 유형이라고 알고 있어서 이런 식으로 접근할 수 있었지만 아니라면.. 어려웠을 것 같다.
[백준/17425/파이썬] 약수의 합 소스코드 import sys MAX = 1000000 dp = [0] * (MAX + 1) s = [0] * (MAX + 1) for i in range(1, MAX + 1): #1부터 최대값까지 j = 1 # i에 곱할 j를 선언 while i * j 코드 상황에 맞추어 두 구현체(PyPy3, Python3)를 적절하게 사용하는 것이 효율적이라고 할 수 있다. https://ralp0217.tistory.com/entry/Python3-%EC%99%80-PyPy3-%EC%B0%A8%EC%9D%B4 Python3 와 PyPy3 차이 Python3 와 PyPy3 차이 평소에 알고리즘 문제를 풀면서 Python을 지원하는 언어를 선택할 때, Python3와 PyPy3가 대표적으로 있었다. 원래 알던 개념은 ..