본문 바로가기

PYTHON20

기본정렬 알고리즘 (Sorting 기법 정리(Bubble,Selection,Quick,Heap,Insertion,Merge)) 학교를 다니면서 알고리즘은 많이 배웠는데 제대로 써먹어본적이 없고 머리에 정리가 제대로 정립이 안된거 같아서 한번 정리해보려구요!!! 총 6가지 sorting 기법만 우선 정리해볼께용~~ 1. Bubble Sort 버블 정렬은 매번 연속된 두개의 인덱스 값을 비교하여, 정한 기준의 값을 뒤로 넘겨 정렬하는 방법입니다. 오름차순으로 정렬하려고 하면, 비교할때 마다 큰 값이 뒤로 이동하면서 한바퀴 돌면 가장 큰 값이 맨 뒤에 저장됩니다. 맨 마지막에는 비교하는 수들 중 가장 큰 값이 저장되기 때문에,(전체 배열의 크기- 현재까지 순환한 바퀴수)만큼만 반복하는 알고리즘입니다!! 백문이 불여일견이라 그림으로 보고 가실께용 이 알고리즘은 1부터 비교를 시작하면서 n-1,n-2,....1개씩 비교를 반복하면서 배열.. 2024. 1. 2.
10431.줄세우기 https://www.acmicpc.net/problem/10431 10431번: 줄세우기 초등학교 선생님 강산이는 아이들을 데리고 단체로 어떤 일을 할 때 불편함이 없도록 새로 반에 배정받은 아이들에게 키 순서대로 번호를 부여한다. 번호를 부여할 땐 키가 가장 작은 아이가 1 www.acmicpc.net 1.설명 문제를 보자마자 이거 무조건 sort 문제겠다 싶었슴다!! 학교에서 C++로 배웠던 linked list가 제일 먼저 떠올랐는데요?? 근데 linked list은 공간을 만들기 위해 한발짝 뒤로 물러가진 아니하진아니한가... 라는 생각이 들었습니다.(어떤 견제든 환영합니다!!) 따라서 sort 방법이랑 search 기법을 많이 배웠는데 딱히 완벽하게 정리를 안해봤다는 생각이 들어서 이번 기법은.. 2024. 1. 2.
Python(1)-Python 기초 아예 쌩늅늅이들을 위해 정리를 해보려고해용 :) Python 파이썬은 프로그래밍언어 작성 후, 컴파일이 아닌 인터프리터를 통해 실행된다. 1991년 Guido van Rossum에 의해 개발되었다. (사실은 java 보다 4년 일찍 출시되었다.) 객체 지향 언어이며 동적 타이핑 언어 인터프리터랑 컴파일러랑의 비교를 해볼까요? 인터프리터와 컴파일러는 사람이 쓰는 개발언어를 기계어로 번역해주는 것입니다. 컴파일러는 단어의 뜻과 비슷하게 프로그램 전체를 스캔하여 이를 모두 기계어로 한번에 번역합니다. 인터프리터는 프로그램 실행시 한 번에 한문장씩만 기계어로 번역합니다. 인터프리터와 컴파일러 둘다 여어와 같은 인간의 언어로 작성한 코드를 컴퓨터가 이해할 수 있도록 변환시킨다는 점에서는 같습니다. 하지만 인터프리.. 2024. 1. 2.
Web crolling이라 쓰고 사실 scraping인 멜론 TOP#100 웹 크롤링이란? 'URL을 탐색해 반복적으로 링크를 가져오는 과정'입니다.웹 크롤링은 단어 자체에서 보다시피 웹페이지를 찾아다니며 정보를 수집합니다. 대표적인 웹 크롤링으로는 검색엔진의 웹 크롤러가 하는 일을 예로 들 수 있습니다.웹 크롤러는 URL을 수집하고 웹 페이지를 복사하여, 수집한 웹 페이지에 index을 부여해 사용자에게 더 신속하게 정보를 제공합니다. 웹 스크래핑이란? '우리가 정한 웹 페이지에서 데이터를 추출하는 것'입니다. 우리가 특정 주제의 뉴스만을 가져오거나, 인기검색어 정보를 가져오는 것, 어떤 상품의 가격을 모니터링하는 것 모두 웹 스크래핑입니다. 웹 스크래핑을 웹 데이터 추출, 웹 하베스팅이라고도 부릅니다. 웹 크롤링과 웹 스크래핑은 모두 정보를 추출해온다는 데서는 공통점을 지니.. 2023. 12. 29.
11723.집합 https://www.acmicpc.net/problem/11723 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net 1.설명 일단 문제에서 집합에 따른 여러 조건들을 수행해야하는데 그렇게 어려워보이지않았습니다. 일단 실패한 코드 먼저 보시죠. m = int(input()) s = set() for _ in range(m): arr = list(input().split()) c = arr[0] if c == 'add': s.add(int(arr[1])) elif c == 'remove': try: s.remove(int(arr[1])) except.. 2023. 12. 28.
2941.크로아티아 알파벳 https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 1.설명 단어를 input 받은후 대체해야할 단어를 array안에 저장해놓고, replace함수를 활용하여 단어를 대체했습니다!! 이번 문제에서 알아야하는건 replace 함수였던거 같습니다. replace 함수에 대해서 좀더 잘 알아볼께용 replace는 문자열을 변경하는 함수로 문자열 안에서 특정 문자를 새로운 문자로 변경하는 기능을 가지고 있습니다. 변수.. 2023. 12. 28.