| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
- 완전탐색
- 우선순위큐
- 파이썬
- 1일1솔
- unity
- JPA
- spring
- 프로그래머스
- 합 구하기
- popleft
- python3
- 그리디 알고리즘
- 소수찾기
- BFS
- 인프런
- 브루투포스
- 연관관계
- 누적합
- Java
- 소수판별
- c#
- 백준
- Python
- mvc
- DP
- C#강의
- LCM
- appendleft
- pypy3
- deque
- Today
- Total
목록전체 글 (139)
jae_coding
문제 문제 링크 문제 접근 백준 11055번 과 다른 점은 N의 range이다. 이점을 잘 생각해야 한다. 1,000 -> 1,000,000 시간복잡도 O(N logN)인 binary search를 사용해야 한다. 코드 시간 초과 코드 (시간 복잡도: O(N^2)) import sys N = int(sys.stdin.readline()) seq = list(map(int, sys.stdin.readline().split())) dp = [1] * N for i in range(N): for j in range(i): if seq[i] > seq[j]: dp[i] = max(dp[i], dp[j] + 1) print(dp) 통과 코드 ( 시간복잡도: O(NlogN) import sys N = int(sys..
문제 문제 링크 문제 접근 case1: N이 0 또는 1인경우는 0! 또는 1!이므로 1을 출력한다. case2: N 팩토리얼의 수를 구한 후 string타입으로 변경 후 마지막 문자부터 첫번째 문자 순서대로 "0" 인경우 count를 올려준다. 만약 "0"이 아니라면 for문을 빠져나온다. 출력은 count를 하면된다. 코드 import sys N = int(sys.stdin.readline()) num = 1 if N == 0 or N == 1: print(0) else: for i in range(1, N+1): num *= i st = str(num) count = 0 for i in range(len(st)): if st[len(st)-i-1] == "0": count += 1 else: bre..
문제 문제 링크 문제 접근 이 문제는 dp에 대한 개념을 정리하기에 좋은 문제인 듯하다. step1: N과 수열 받아온다. step2: dp의 list를 모두 1로 초기화한다. step3: i번째 수열의 이전 값이 i번째 수열 값보다 크면 dp의 i번째를 dp의 i번째와 이전의 dp보다 큰 값이 있다면 그 값에 +1한 것과 비교하여 높은 것을 dp의 i번째에 넣는다. step4: dp리스트에서 가장 높은 값을 출력한다. 코드 import sys N = int(sys.stdin.readline()) array = list(map(int, sys.stdin.readline().split())) dp = [1] * N for i in range(N): for j in range(i): if array[i] <..