본문 바로가기

전체 글361

파이썬 피보나치 수열 구현하기 학습 목표 피보나치 수열에 대한 이해 피보나치 수열 1) 정의 피보나치 수열이란 처음 두 항을 1과 1로 한 후, 그 다음 항부터는 바로 앞의 두 개의 항을 더해 만드는 수열을 말한다. *문제를 살펴보면 처음 두 항은 다른 경우가 꽤 있다. 2) 동작 예시 풀이 - 1 def fibo(x): if x==0: return 1 elif x==1: return 1 else: return fibo(x-1)+fibo(x-2) n=int(input()) print(fibo(n)) 가장 기본적인 식으로, x==0과 x==1일 때 fibo(x)는 1을 처리한다. 이 외는 fibo(x-1)+fibo(x-2) 더한 값을 리턴한다. 매번 fibo(x-1), fibo(x-2) .... 계산이 계속해서 돌게 되므로, 연산이 많.. 2021. 2. 20.
파이썬 백준 8393번 수학 합 8393번: 합 (acmicpc.net) 8393번: 합 n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오. www.acmicpc.net 위와 같이 1+....+n까지의 합을 구하도록 의미한다. 과거 고등학교 수학에서 배웠듯이 n*(n+1)/2로 나타낼 수 있다. ​ 풀이 과정 우선 최근 공부하고 있던 for문에 대해 활용하고자 하였다. z=int(input()) n=range(1,z+1) b=0 for a in n: b+=a if a==z: print(b) z=int(input()) # 기본 입력 인자를 받음. 숫자 입력 시 int type으로 출력 됨. n=range(1,z+1) # for문에서 쓰일 예정. range에서 max값(2번째 index)은 -1이 되니, +1을 해준다. .. 2021. 2. 16.
[그래프] 깊이 우선 탐색 (DFS - Depth First Search) 알고리즘 학습 목표 깊이 우선 탐색 (Depth First Search) 개념, 예시, 의의 깊이 우선 탐색 개념 1) 정의 깊이 우선 탐색이란, 트리 구조나 그래프 데이터 구조를 탐색하는 알고리즘이다. 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘이다. 깊이 우선 탐색은 스택 구조를 사용한다. 2) 동작 예시 시작 노드에서부터 왼쪽이 우선 선택되었다고 가정하자. (1) 탐색 시작 노드를 스택에 삽입하고 '방문' 처리한다. (2) 방문하지 않은 인접 노드를 스택에 넣고 방문처리 한다. 방문하지 않은 인접 노드가 없으면 스택에서 최상단 노드를 꺼낸다. >> 방문할 수 있는 노드는 모두 방문 후, 없으면 돌아간다는 의미이다. (이 때 스택에서 추가되었던 값들이 하나씩 다시 제거된다.) (3) (2)번 과정을 반.. 2021. 2. 12.
파이썬 백준 2742번 제문 는하력출 지까N 터부1 https://www.acmicpc.net/problem/2742 2742번: 기찍 N 자연수 N이 주어졌을 때, N부터 1까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 자연수 N이 주어졌을 때, N부터 1까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오. 문제 풀이 문제 풀이 1 - Range 함수 이용하기 ​ N에서 부터 1까지 어떻게 역순으로 나열할 수 있을 것인지에 대한 문제이다. ​ Point 1: 반복되는 작업을 하는 내용이므로, for문이 사용될 수 있다. Point 2: 다만, for문이 사용되면 범위를 어떻게 잡아야 N부터 나열될 수 있을 것인가? ​ 기본적으로 for문 iterator에 자주 쓰이는 range 함수를 사용하기로 하였다. impo.. 2021. 2. 12.