일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준
- reinforcement learning
- 알고리즘
- 프로그래머스
- 논문
- object detection
- 내용추가
- Python
- coding test
- 모두를 위한 딥러닝
- computer vision
- Today
- Total
목록백준 (11)
NISSO
해당 문제는 재귀 카테고리에 있어서 재귀함수로 풀었다. 바로 전 문제가 팩토리얼 문제여서 재귀로는 쉽게 풀었다. def fibo(n=int(input()), i=1): if n>2: return fibo(n-1) + fibo(n-2) return 0 if n==0 else 1 print(fibo()) 그리고 다른 코드를 구경(?)하는데 변수를 dp로 설정했더라. 알진 못해도 들어본 적은 있어서 바로 검색해봤다. DP는 동적계획법 (Dynamic Programming)으로 상향식 접근법이며 실행시간이 현저히 줄어든다는 장점이 있다. 이전에 계산한 값을 메모리에 저장해 다시 계산하지 않도록 하는 Memoization 기법을 사용한다. n = int(input()) dp = [j for j in range(n..
for문을 사용해 구현할 수도 있지만 백준 문제 카테고리가 재귀라서 재귀함수를 사용해봤다. 간단한 코드인데 혼자 힘으로는 못했고 서치로 알아냈다... 봤던 건데 실제로 안 써보니 까먹은 것 같다. def factorial(n=int(input())): if n>1: return n*factorial(n-1) return 1 print(factorial()) 최종 출력할 값을 fct로 놓고 곱할 값을 i로 놓고 별 짓을 다 해봤지만 시간 낭비였다. 재귀함수에 n을 곱할 생각을 못했다. 아무튼 간단하고도 필수적으로 알아야할 코드니 다신 잊어먹지 않겠다. + 재귀나 for문 외에 더 쉬운 방법이 있다. import math n = int(input()) print(math.factorial(n)) 파이썬 표준..
처음으로 백준 문제를 풀어보려고 쉬운 것부터 도전해보는데 이 문제에만 20분을 쏟았다. 예제 답도 완벽했는데 도대체 뭐가 문제였을까. 문제 1. 프로그래머스만 이용해본 입장에서, 함수 형식이 아니라 input()으로 그 때 그 때 입력받는 방식인 걸 몰랐다. 특히 예제 첫줄만 a로 받고 아래를 모두 b로 한 번에 받았는데, 서치해보니 한 줄씩 받고 바로 출력하는 것이었다. 문제 2. 반례가 있다. 1 1 0 답은 0.000% 인데 100.000%가 나왔다. 정말 작은 실수였다.. 반복문에 b 전체를 받은 것. b[0]은 학생 수라서 b[1:]로 계산해야 맞는 거다. 뒷부분은 b[1:]로 잘해놓고 여기선 생각도 못했다. 다음은 수정한 내 코드다. a = int(input()) for _ in range(a..