프로그래밍 공부21 삽입 정렬(Insertion Sort) 삽입 정렬이란? 삽입 정렬은 두 번째 원소부터 시작하여 그 앞의 원소들과 비교하면서 앞의 원소가 크다면 해당 원소를 뒤로 옮기고, 크지 않다면 해당 위치의 다음 인덱스에 비교를 시작한 원소를 삽입하여 정렬하는 알고리즘입니다. 삽입 정렬의 기본 동작은 다음과 같습니다. 1. 정렬을 시작할 때, 첫 번째 요소는 이미 정렬된 상태로 간주합니다. 2. 두 번째 요소부터 시작하여 삽입하고자 하는 요소를 이전에 정렬된 부분 리스트와 비교합니다. 3. 삽입하고자 하는 원소보다 작은 원소를 만날 때까지 계속해서 비교하며, 작은 원소를 만나면 그 원소의 다음 위치에 비교를 시작한 원소를 삽입합니다. 4. 이 과정을 리스트의 끝까지 반복합니다. 삽입 정렬의 특징 1. stable 정렬: 동일한 값의 원소들 간에는 순서가 .. 프로그래밍 공부/Java 2024. 1. 18. 거품 정렬(Bubble Sort) 거품 정렬이란? 거품 정렬은 간단하면서 기본적인 정렬 알고리즘 중 하나입니다. 이 알고리즘은 인접한 두 원소를 비교하여 순서가 잘못된 경우에 서로 교환하는 방식으로 정렬을 진행합니다. 이러한 교환 작업을 계속해서 반복하면서 가장 큰 원소가 배열의 마지막 위치로 이동하게 됩니다. 이 과정을 배열의 모든 원소가 정렬될 때까지 반복합니다. 거품 정렬은 하나의 원소를 정렬하는 과정에서 많은 교환(swap)과정이 일어날 수 있어서 하나의 원소에 대해 한 번의 교환 과정을 갖는 선택 정렬에 비해 평균적으로 더 많은 시간이 소요됩니다. 거품 정렬의 특징 1. stable 정렬: 동일한 값의 원소들 간에는 순서가 유지되므로 안정 정렬입니다. 2. in-place 정렬: 자료 구조를 그대로 두고 그 안에서 요소들의 위치.. 프로그래밍 공부/Java 2024. 1. 18. 선택 정렬(Selection Sort) 선택 정렬이란? 선택 정렬은 간단하면서도 기본적인 정렬 알고리즘 중 하나입니다. 이 정렬 알고리즘은 한 번의 배열 탐색에서 가장 작은 원소의 위치를 찾아 첫 번째 위치의 원소와 교환하고, 그다음으로 작은 원소를 찾아 두 번째 위치의 원소와 교환하는 과정을 배열의 마지막 원소까지 반복하여 배열을 정렬합니다. 선택 정렬의 특징 1. unstable 정렬: 같은 값을 갖는 원소들의 순서가 정렬 이후 변경될 수 있기에 불안정 정렬입니다. 2. in-place 정렬: 자료 구조를 그대로 두고 그 안에서 요소들의 위치를 바꾸어 정렬합니다. 3. 시간복잡도: 최선, 평균, 최악의 경우 모두 O(N^2)의 시간 복잡도를 갖습니다. 왜냐하면 비교를 해 보기 전에는 어떤 원소가 가장 작은지 모르기 때문에 배열이 최선의 경.. 프로그래밍 공부/Java 2024. 1. 18. 문자열 상수 풀(String Constant Pool)이란? 문자열 상수 풀(String Constant Pool)이란? Java의 String Pool은 문자열 상수 풀이라고도 불리며, JVM이 문자열 리터럴을 관리하는 특별한 영역입니다. 해당 영역은 JVM의 힙 메모리 안의 별도의 공간으로 존재합니다. Stirng Pool의 주요 특징과 동작 방식은 다음과 같습니다. 1. 문자열 리터럴의 재사용 리터럴로 선언된 문자열은 문자열 풀에 저장되며, 이미 동일한 내용의 문자열이 존재하는지 확인합니다. 만약 동일한 내용의 문자열이 없다면 새로운 문자열이 풀에 추가되고, 이미 존재한다면 기존의 문자열을 재사용합니다. 2. 불변성 보장 String 클래스는 불변(immutable)하므로 한 번 생성된 문자열은 변경할 수 없습니다. 이는 문자열 풀에서 중복 검사와 재사용을 .. 프로그래밍 공부/Java 2024. 1. 12. [Python] 2차원 배열에서 최댓값 찾기 보통 2차원 배열에서 최댓값을 찾는다고 하면 다음과 같이 코드를 작성하는 경우가 많다. for 반복문을 돌면서 최댓값을 저장할 변수의 값을 업데이트해서 값을 구하는 방식이다. 하지만, 파이썬에서는 다음의 코드로 보다 짧게 2차원 배열에서 최댓값을 구할 수 있다. max() 함수와 map() 함수를 위와 같이 사용하면 한 줄의 코드로 2차원 배열의 최댓값을 찾을 수 있다. 🚨 주의 💥💥💥 위와 같이 코드를 작성하지 않고 아래와 같이 단지 max() 함수를 2번 사용하기만 해서는 잘못된 값이 나올 수 있다. 프로그래밍 공부/Python 2023. 10. 9. [Python] 정규 표현식 링크 정리 🏷️ Reference: https://nachwon.github.io/regular-expressions/ [Python 문법] 정규표현식 (Regular Expressions) 정규표현식에 대해 알아보고 Python으로 정규표현식을 사용하는 방법에 대해 알아본다. nachwon.github.io https://wikidocs.net/4308 07-2 정규 표현식 시작하기 [TOC] ## 정규 표현식의 기초, 메타 문자 정규 표현식에서 사용하는 메타 문자(meta characters)에는 다음과 같은 것이 있다. > 메타 문자란 원래 그 문자… wikidocs.net https://docs.python.org/ko/3.8/howto/regex.html 정규식 HOWTO — Python 3.8.14 문서.. 프로그래밍 공부/Python 2022. 11. 29. [Python] EOF 에러 처리 백준에서 문제를 풀다 보면 입력의 종료 조건을 주지 않는 문제들이 가끔 보인다. 이때 입력값이 없을 때까지 input() 함수로 데이터를 읽어 들이려면, while 반복문과 try-except 구문을 이용하면 된다. 데이터를 정상적으로 입력받는다면 try 문의 내용을 수행하고, 입력값이 없어 예외(EOFError)가 발생한다면 except 문에서 break로 반복문을 종료시켜주면 된다. 코드는 아래와 같이 사용하면 된다. 🔍️ 문법: 🏷️ Reference: - 관련 문제 : https://www.acmicpc.net/problem/6550 6550번: 부분 문자열 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문자열 s 와 t가 빈칸을 사이에 두고 들어.. 프로그래밍 공부/Python 2022. 11. 8. [SQL] 년, 월, 일 데이터 추출하기 - YEAR(), MONTH(), DAY() 날짜 형식의 칼럼에서 년, 월, 일 데이터를 추출하고 싶을 때는 YEAR(), MONTH(), DAY()를 사용한다. 🔍️ 문법: # CASE : MYSQL YEAR(날짜 형식의 값) MONTH(날짜 형식의 값) DAY(날짜 형식의 값) 🚀 예제: 🏷️ Reference: - 문법 설명: https://www.w3schools.com/sql/func_mysql_year.asp MySQL YEAR() Function W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python.. 프로그래밍 공부/SQL 2022. 10. 30. [SQL] 컬럼에서 조회한 데이터 자르기 - SUBSTR(), SUBSTRING() SQL에서 조회된 데이터를 특정 위치를 기준으로 지정해준 길이만큼 자르고 싶을 때는 MYSQL 기준으로 SUBSTR(), SUBSTRING() 함수를 사용하면 된다. 🔍️ 문법: # CASE: MYSQL SUBSTR(컬럼명, 시작 위치, 길이) # 시작 위치는 1부터 시작한다. SUBSTRRING(컬럼명, 시작 위치, 길이) 🏷️ Reference: - 문법 설명: https://www.w3schools.com/sql/func_mysql_substr.asp MySQL SUBSTR() Function W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering pop.. 프로그래밍 공부/SQL 2022. 10. 29. [SQL] 조회된 데이터가 없을 경우 결괏값 바꿔서 출력하기 SQL에서 칼럼의 값이 NULL 이지만, 결괏값을 변경하여 출력하고 싶을 때는 IFNULL() 을 사용하면 된다. 🔍️ 문법: IFNULL(컬럼명, 대체할 값) 🏷️ Reference: - 문법 설명: https://www.w3schools.com/sql/func_mysql_ifnull.asp MySQL IFNULL() Function W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more. www.w3schoo.. 프로그래밍 공부/SQL 2022. 10. 29. 이전 1 2 3 다음