본문 바로가기
반응형

● 알고리즘, 자료구조/2019 알고리즘20

다중 if문 x = 12 if x > 10 : if x % 2 == 1 : print("x는 10이상의 홀수") elif x % 2 == 0 : print("x는 10이상의 짝수") 2020. 10. 15.
함수란? 함수란? 프로그래밍에서 함수(function)란 하나의 특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 프로그램 코드의 집합으로 정의할 수 있습니다. C 프로그램은 이러한 함수들로 구성되며, 포함된 함수들을 사용하여 프로그램의 목적을 달성하게 됩니다. 함수를 사용하는 이유 함수를 사용하는 가장 큰 이유는 바로 반복적인 프로그래밍을 피할 수 있기 때문입니다. 프로그램에서 특정 작업을 여러 번 반복해야 할 때는 해당 작업을 수행하는 함수를 작성하면 됩니다. 그리고서 프로그램이 필요할 때마다 작성한 함수를 호출하면 해당 작업을 반복해서 수행할 수 있습니다. 또한, 프로그램을 여러 개의 함수로 나누어 작성하면, 모듈화로 인해 전체적인 코드의 가독성이 좋아집니다. 그리고 프로그램에 문제가 발생하거나 기능의 .. 2020. 10. 14.
[기초코딩] 100에서 1까지 거꾸로 출력하기 # 여기 빈 리스트가 있습니다. number_list = [] # number_list에 1부터 100까지 수를 거꾸로 넣어보세요 # 예: 100, 99, 98, ... 3, 2, 1 # number_list.append("abc") # 100에서 거꾸로 거꾸로 넣으려면 어떻게 해야하지?? for i in range(0,100) : # 왜 0 ~ 99까지 출력되도록 넣은걸까?? number_list.append(100 - i) for i in range(0,100,-1) : number_list.append(i) # number_list에서 10번째, 30번째, 50번째 원소를 각각 출력해봅시다 print(number_list[9]) # 10번째 원소 print(number_list[29]) # 30번째.. 2020. 9. 20.
함수 def add(a,b) : c = a+b print(c) add(3,3) ''' def add(a,b): c=a+b return c # 결과값을 호출하는것에 c를 반환함 # return은 결과값을 반환 print(add(3,2)) ''' ''' def add(a,b) : c = a+b d = a-b return c,d print(add(2,2)) # 출력값 (4, 0) ''' # list에서 소수만 출력해보자 # 소수는 1과 자기자신만 존재해야 소수 # 지역변수 x def isPrime(x) : for i in range(2,x): # 2부터 x앞까지만 반영됨 if x%i==0: return False return True a = [12,13,7,9,19] for y in a : if isPrime(y).. 2020. 9. 11.
선택 정렬 쉽게 설명한 선택 정렬 알고리즘 총 2개의 함수가 필요하다. 첫번째는 최소값을 가지고 있는 인덱스를 찾는 함수 - for 두번째는 최소값을 지닌 리스트를 순서대로 쌓는 함수 - while - pop - append # 가장작은 값을 지닌 값의 인덱스를 찾는 프로그램 def find_min_idx(num) : len_num = len(num) min_idx = 0 # 초기 인덱스를 줌 for i in range(1,len_num) : # 초기 인덱스 0과의 비교는 할 필요없으니 1부터 시작 if num[i] 2019. 9. 27.
순차탐색 리스트안에 있는 원소를 하나씩 순차적으로 비교하면서 탐색한다. 순차탐색알고리즘 주어진 리스트에서 특정 값을 찾아 해당 인덱스를 돌려주는 프로그램을 작성하라 해당 인덱스를 여러개 입력해도 하나만 걸리면 리턴하도록 외부값과 내부값을 비교하는 것이므로 이중 for문을 쓰지 않는다. # 주어진 리스트에서 특정 숫자의 인덱스 찾기 # 입력 : 리스트 a, 찾는 값 x # 출력 : 찾으면 그 값의 위치, 못찾으면 -1 def search(a,x) : len_a = len(a) for i in range(len_a) : if x == a[i] : return i return -1 # 만약 for > if > else문에 작성하게 되면 for문 전체를 검사하지 않고 return되어 값을 못찾는다. # 주어진 리스트에서.. 2019. 9. 26.
최대공약수 GCD 알고리즘. 유클리드. GCD는 두 개 이상의 정수의 공통 약수 중 가장 큰 값을 의미 최대공약수 알고리즘 1. 4,6 중 작은 수인 4를 i에 저장 2. 4는 i로 나눠떨어지나 6은 아니다 3. i-1을 해서 3으로 만든다 4. i는 6과 나눠떨어지나 4은 아니다 5. i-1을 해서 2로 만든다 6. i는 4,6 모두와 나눠떨어지므로 2가 최대공약수이다. def gcd(a,b) : i = min(a,b) while True : if a % i == 0 and b % i == 0 : return i i -=1 유클리드 알고리즘 유클리드가 발견한 GCD성질을 이용한 알고리즘! 유클리드가 발견한 것은 다음과 같다 a,b의 GCD는 'b' 와 'a를 b로 나눈 나머지'의 최대공약수와 같다. 즉, gcd(a,b) = gcd(b, a%.. 2019. 9. 25.
파이썬 기초. 리스트. 집합. 반복비교 리스트 len(a) 리스트 길이(자료 개수)를 구한다 a = [] len(a) append(x) 자료 x를 리스트의 맨 뒤에 추가 insert(i,x) 리스트의 i번 위치에 x를 추가 a.insert(0,5) # 0번 인덱스에 5추가 pop(i) i번 위치에 있는 자료를 리스트에서 빼내면서 그 값을 함수의 결과값으로 돌림만약 i 미지정시 맨 마지막 값을 뺌 a.pop() a.pop(0) # 0번 인덱스 출력되고 빠짐 clear() 리스트의 모든 자료 지움 a.clear() # 빈리스트됨 x in a 어떤 자료 x가 리스트 a안에 있는지 확인. (x not in a는 반대) a = [1,2,3] 2 in a 3 in a 4 in a 총합을 구하는 알고리즘 def sum(n) : return n*(n+1) .. 2019. 9. 25.
함수 참고사이트 점프 투 파이썬 def add(a, b): # a, b는 매개변수 return a+b print(add(3, 4)) # 3, 4는 인수 매개변수는 함수에 입력으로 전달된 값을 받는 변수 인수는 함수를 호출할 때 전달하는 입력값 함수는 들어온 입력값을 받아 어떤 처리를 하여 적절한 결괏값을 돌려준다. 입력값 ---> 함수 ----> 결괏값 입력값이 없는 함수 매개변수가 비어있다면? >>> def say(): ... return 'Hi' ... >>> a = say() >>> print(a) Hi 매개변수 부분을 나타내는 함수 이름 뒤의 괄호 안이 비어있으면 입력값이 없다는 것 그러나 결괏값으로 Hi라는 문자열을 돌려준다 결과값 return이 없는 함수 호출해도 돌려주는 값이 없다 >>> def .. 2019. 9. 24.
python 딕셔너리 A = int(input()) # 딕셔너리에선 and, or가 안되는건가? # and를 사용하면 제일 앞에 있는 12,6,9만 정상 출력되고 # or를 사용하면 제일 뒤에 있는 5,8,11만 정상 출력된다 def switch(val) : return{ 12 and 1 and 2 : "winter", }.get(val,"nothing") print(switch(A)) 딕셔너리 개념 참고사이트 2019. 9. 24.
python switch A = input() def switch(value): return { 'A' : 'best!!!', 'B' : 'good!!', 'C' : 'run!', 'D' : 'slowly~', }.get(value,"what?") # value값이 존재하지 않을때 defalut값으로 what?을 반환 print(switch(A)) 참고사이트 2019. 9. 24.
python 무한루프의 차이점 while(1), while(true) https://codeday.me/ko/qa/20190324/141472.html python – “while 1″과 “while true”의 차이점은 무엇입니까? - 코드 로그 파이썬에서 무한 루프를 만드는 두 가지 방법을 보았습니다. > while 1: do_something() > while True: do_something() 이것들간에 차이가 있습니까? 다른 하나보다 파이썬이 더 많습니까? 우수 답변 근본적으로 중요하지 않습니다. 그러한 미세 관념은 무언가가 ‘파이썬’인지 여부에 실제로 영향을 미치지 않습니다. 그러나 퀴즈에 관심이 있다면 몇 가지 차이점이 있습니다. > builtin boolean type didn’t codeday.me 근본적으로 중요하지 않습니다. 그러한 미세 관념은 무언가.. 2019. 9. 17.
while 과 for문의 차이점 참고1 / 참고2 while for (초기화 ; 조건 ; 증감연산) 만족할때까지 반복 불만족할때까지 반복 while문 이전에 초기화 초기화 무한루프 while(1) 혹은 while True 무한루프 for(;;) 그렇다면 while(1)과 while True의 차이점은 무엇인가? 2019. 9. 17.
백준 2750 파이썬 / 버블,삽입정렬 / 문제풀이 4종류 Q. 첫째줄에는 입력할 숫자들의 갯수 N을 입력하고 N만큼의 숫자를 입력한 뒤 오름차순으로 정렬하시오. 사용언어 : python3 소스1 N = int(input()) M = [] for i in range(N) : M.append(int(input()) # M.append(num)이 아닌 num대신 int(input())을 사용 M = sorted(M) for i in range(len(M)) : print(M[i]) 소스2 N = int(input()) M = set() for i in range(N) : M.add(int(input()) #append대신에 add사용 M = list(M) M.sort() for i in range(len(M)) : print(M[i]) 버블정렬로 정렬하기 N = i.. 2019. 8. 28.
백준 2884 파이썬 알람 시계 / if문 / *단순 산수 H,M = map(int,input().split()) if 0 2019. 8. 22.
★ 백준 15552 파이썬 / for / 입출력 방식 빠르게(sys.stdin.readline) 오버타임 방지 input()을 이용하면 프롬프트를 이용한 입력을 받을 수 있고, 형변환이 되는 이점이 있다. 대량의 데이터를 반복적으로 입력받을 때 input()을 이용하지 않고, sys.stdin.readline() 을 이용하면 성능이 향상 자바에서 Scanner를 이용한 입력보다 BufferedReader 를 이용한 입력이 빠른것처럼 파이썬도 input()을 이용하는 것보다 sys.stdin.readline()을 이용하는 것이 훨씬 빠르다. Python rstrip을 하라는 건 문자열 자체를 변수에 저장하고 싶을 때 얘기지, 개행문자가 맨 끝에 들어와도 int 변환이나 split()을 그대로 할 수 있습니다. 즉 int(sys.stdin.readline()), sys.stdin.readline().split() 이.. 2019. 8. 5.
백준 8393 파이썬 / 누적합 / int와 len / while,for문과 break, continue / 문제 : 입력값만큼 누적된 값 출력하기 N = int(input()) result = 0 if 1 2019. 8. 5.
[py/Error] cannot unpack non-iterable int object https://www.reddit.com/r/learnpython/comments/aswvgu/why_am_i_getting_an_typeerror_cannot_unpack/ Why am I getting an 'TypeError: cannot unpack non-iterable int object' when I try to iterate over a tuple here? I meant unpack, not iterate in the title** a = [(1,2), (3,4)] for item in a: for i,j in item: # 2019. 8. 1.
반응형