본문 바로가기

Python notes/Others57

파이썬) class 만들기 (+class? method? object와 instance?) #1. class를 선언하다가 생긴 여러가지 궁금증들... 시작은 그냥 class를 만드려고 했던 것뿐인데 수업을 듣다보니 __init__은 무엇이고 self는 왜 들어가는 것이며, class, method, object, instance 이것들은 또 무슨 개념인지^^; 구글링으로 이 블로그 저 블로그 찾아보고, 코드를 실행시켜 보면서 확인한 내용을 정리해 본다. #2. 정리한 내용 (고수분들이 오류를 발견하신다면 댓글로 한수 가르쳐 주세요 :-D) 1) class는 무엇인가? 변수와 method를 정의하는 것 위에서는 class의 이름은 fruit이고, 그 형태를 보면 클래스이름("과일이름", 과일개수) -----> fruit(name, quantity) 로 해 놓았다. 2) method는 무엇인가? .. 2021. 3. 26.
파이썬 예제코드) 최빈값 알고리즘 만들기 (+인덱스 값을 사용) #1. 문제 해결 1) 여러 점수들이 들어 있는 리스트를 만든다 2) scores 리스트 내에 가장 많이 들어 있는 점수가 최빈값이고 이 값을 찾아야 한다 3) scores 리스트에서 가장 큰 점수 +1만큼의 원소를 가진 리스트 indexes를 만든다 4) for 반복문으로 scores 리스트 내의 점수들을 하나씩 indexes 리스트내에 1씩 증가시켜 카운트 한다. (scores의 scores[0]=90점을 indexes의 indexes[90]=1로 카운트) 5) scores 리스트 전체 점수들에 반복한다. 6) 새로운 for 반복문으로 indexes 리스트 내에 들어 있는 원소들 중 최대값을 찾는다. 7) indexes[i]=최대값일 경우, i=최빈 점수, indexes[i]는 빈도가 된다. #2. .. 2021. 3. 25.
파이썬 예제코드) 정수 리스트 2개를 병합하기 (+Merge algorithm) #1. 문제 해결 1) 원소 개수가 다른 두개의 정수 리스트 만들기 (오름차순으로 정렬) 2) len으로 각 리스트의 원소개수를 M, N변수에 넣기 3) 두 리스트의 원소개수의 합만큼 원소가 생기도록 (M+N) 병합된 리스트에 0을 넣기 4) 각 리스트의 인덱스는 모두 0으로 넣어서 시작 5) while문으로 첫번째 리스트와 두번째 리스트의 인덱스 중 하나라도 마지막 인덱스까지 달할 때까지 반복해서 병합 리스트에 원소를 넣음 (병합 리스트에는 둘 중 원소값이 작은 것을 넣음) 6) 세개의 리스트의 인덱스 값을 상황에 맞게 1씩 증가시키기 7) 첫번째 리스트의 인덱스와 두번째 리스트의 인덱스 중 아직 끝까지 도달하지 않은 리스트의 경우 그 뒤로 병합 리스트에 들어가도록 함 8) 마지막에 병합된 리스트 확인.. 2021. 3. 25.
파이썬 예제코드) binary search 방법으로 검색 알고리즘 만들기 #1. 문제 해결 1) 오름차순으로 된 리스트 만들기 2) 찾으려는 숫자를 입력받을 변수 만들기 3) True or False 담을 변수 만들기 4) 첫번째와 마지막 인덱스 변수, 가운데 변수, 회전 수 설정하기 (0, N-1, mid, circle) 5) while 반복문으로 첫번째 인덱스가 마지막 변수와 같아질 때까지 반복하도록 조건 설정 6) 반복할 때마다 회전수 증가 7) 가운데 인덱스 변수에는 첫번째 인덱스 변수와 마지막 인덱스 변수의 평균을 넣음 8) 가운데 인덱스가 search값과 같으면 True이고 해당 값을 index 변수에 넣음, 서치 완료했으므로 break로 끝내기 9) 가운데 인덱스가 search값보다 크면 마지막 인덱스를 다시 설정해줌 -> 가운데 인덱스-1 10) 가운데 인덱스가.. 2021. 3. 25.
파이썬 예제코드) 오름차순, 내림차순으로 리스트 내 숫자 재배열하기 #1. 문제 해결 1) 순서가 뒤죽박죽인 리스트 만들기 2) 리스트 내 원소 개수를 N으로 잡고 3) 반복을 통해 원소들의 크기를 비교할 수 있게 if 문 구성 4) 크기 비교 후 두 원소의 값을 SWAP하는 코드 작성 5) 원소 간의 모든 비교 후 업데이트된 리스트를 print #2. 코드 짜기 #여러 숫자를 입력받아 리스트로 만들기 yip=input("여러 숫자를 공백으로 구분하여 입력하시오:") yiplist=yip.split(" ") #입력 받은 각 숫자들을 쪼개서 원소로 받아 리스트 만들기 int_yiplist=list(map(int, yiplist)) #string으로 된 원소들을 정수로 변환 print(f"입력한 숫자는 {int_yiplist}입니다") #오름차순, 내림차순 알고리즘 만들기 .. 2021. 3. 23.