Python

    각 자리수 분리 알고리즘

    재귀함수를 사용하여 문자 분리 n=12345 arr=[] def s(n): while n!=0: arr.append(n%10) return s(n//10) s(n) arr.reverse() print(arr) n%10을 통해 첫 째 자리수를 구한다. 이후 n//10 을 통해 첫 째자리수를 지운다. 이렇게 n=0일때까지 반복한다. 그리하면 arr배열에 [ 5, 4, 3, 2, 1] 이 저장된다. 이 배열을 arr.reverse()를 통해 역순으로 바꾼다. list를 이용하여 문자 분리 n=12345 b=list(map(int,str(n))) print(b)

    자료구조 5장 - 재귀 알고리즘

    자료구조 5장 - 재귀 알고리즘

    재귀 란 ? 1. 어떠한 이벤트에서 자기 자신을 포함하고 다시 자기 자신을 사용하여 재정의하는 경우를 말한다. 2. 자가 증식의 종료를 명확하게 해야한다. (무한증식 오류) 1. 팩토리얼 (양의 정수를 순서대로 곱하는 순차 곱셈) 1 2 3 4 5 6 7 def factorial(n): if n>0: return n* factorial(n-1) else: return 1 print(factorial(5)) n이 0보다 크면 n-1 팩토리얼 값을 구하게 되며 0보다 작을 때까지 반복된다. n이 0보다 작으면 1이 리턴된다. cs -> math 모듈을 통해 math.factorial() 함수를 사용하여 간편히 구할 수 있다. 2. 유클레드 호제법 (x,y의 최대 공약수 , 큰 값을 작은 값으로 나누어 떨어질..

    스택 practice 01 _ 균형잡힌 세상

    백준 4949번 https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마 www.acmicpc.net 1. 문제 세계는 균형이 잘 잡혀있어야 한다. 양과 음, 빛과 어둠 그리고 왼쪽 괄호와 오른쪽 괄호처럼 말이다. 정민이의 임무는 어떤 문자열이 주어졌을 때, 괄호들의 균형이 잘 맞춰져 있는지 판단하는 프로그램을 짜는 것이다. 문자열에 포함되는 괄호는 소괄호("()") 와 대괄호("[]")로 2종류이고, 문자열이 균형을 이루는 조건은 아래와 같다. 모든 왼쪽 소괄호("..

    자료구조 4장- 스택과 큐

    자료구조 4장- 스택과 큐

    스택 이란 ? 스택은 데이터를 임시 저장할 때 사용하는 자료구조 후입선출 방식 FILO 이다 (가장 나중에 넣은 데이터를 가장 먼저 꺼냄) 스택에 데이터를 넣는 작업을 푸시, 스택에서 데이터를 꺼내는 작업을 팝이라고 한다. 스택 배열 : stk (푸시한 데이터를 저장하는 스택 본체인 리스트형 배열), stk[0]은 스택의 바닥 스택 크기 : capacity (스택의 최대 크기) , equal len(stk) 스택 포인터 : ptr (스택에 쌓여있는 데이터의 개수) * 예외처리 : 오류를 복구하여 프로그램이 중단되는 것을 피함 - 원래 처리하는 코드와 오류가 발생할 때 대처하는 코드를 분리 * raise : 일부러 오류 발생 -스택 클래스 정의 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1..

    자료구조 - 3장 검색 알고리즘

    - 검색의 종류 1. 배열 검색 2. 연결 리스트 검색 3. 이진 검색 트리 검색 - 배열 검색 ( 해당 조건에 맞게 알맞게 선택) 1. 선형 검색 2. 이진 검색 - 일정한 규칙으로 늘어놓은 데이터 집합에서 빠른 검색 수행 3. 해시법 - 추가 및 삭제가 빈번히 일어나는 데이터 집합에서 빠른 검색 수행 1. 선형 검색 (가장 기본적인 알고리즘) - 원하는 값을 찾을때까지 맨 앞부터 순서대로 검색하는 알고리즘 - 정렬되지 않은 배열에서 검색할 때 사용하는 유일한 방법 1) arr=[.....] i=0 while True: if i == len(arr): return -1 // 검색 실패 시 if arr[i]== key: return i // 검색 성공 시 해당 인덱스 번호 반환 i+=1 2) for i ..