18. 보물, 나이순 정렬, 국영수, 문자열 내 마음대로 정렬하기, 파일명 정렬
보물 파이썬에서 내림차순 정렬을 하려면? : reverse=True 옵션을 추가하면 됨my_list = [3, 1, 4, 1, 5, 9, 2]sorted_list_desc = sorted(my_list, reverse=True)print(sorted_list_desc) # 출력: [9, 5, 4, 3, 2, 1, 1] 최종코드N = int(input())A = list(map(int, input().split()))B = list(map(int, input().split()))sorted_A = sorted(A)sorted_B = sorted(B, reverse=True)S = [sorted_A[i] * sorted_B[i] for i in range(N)]print(sum(S)) 나이순 정렬 ..
2025. 9. 22.
17. 정렬, 비교정렬, 기수정렬, 카운팅정렬
정렬 문제 정렬 문제는 무엇을 위해?섞여 있는 데이터(리스트)를 어떤 기준(키)에 따라 오름차순/내림차순으로 다시 배열하는 것 : 예를 들어 입력이 빨간색, 파란색, 초록색 등이라고 할 때 정렬할 기준이 무엇이 될까?임 : 즉, 원소들의 모음 : 학생 성적 리스트, 파일 목록, 날짜들… : 이 입력이 될 수 있음 : 반대로 출력은? : 지정한 기준대로 순서가 정리된 같은 원소들의 모음 그렇다면 비교만 되면 정렬 가능일까?그냥 서로 비교할 수 있다고 해서 곧바로 ‘정렬 가능한 데이터’가 되는 건 아님 : 그럼? : 최소, 최대가 존재해야함 : 즉, 제일 작은 것/큰 것이 잡혀야 정렬이 의미가 있어지고 끝까지 수렴 : 일관된 순서(정렬 기준)가 성립해야 함 : 정렬 알고리즘은 원소들 사이에 "모순 없는 전..
2025. 9. 21.
14. 해시, 해시테이블
해시 정의, 개념해시 함수(hash function) : 임의 길이의 키(key)를 고정된 범위의 정수로 매핑하는 함수 h: Key → {0, 1, …, m-1} : 즉, 긴 정보(예: 문자열, 학생이름, 주민번호 같은 키)를 짧은 숫자 하나로 바꿔주는 함수 : 이 숫자를 보통 0 ~ (m-1) 범위로 만든 다음 그 숫자를 주로 배열의 인덱스로 사용하여 칸 번호처럼 씀 : 특히 카운팅, 중복 체크, 빠른 탐색에 쓰임 이렇게 하면 데이터를 빠르게 저장하거나 검색할 때 유용함 : 키를 그대로 비교하는 대신 “번호표”로 먼저 자리부터 찾는 느낌임 : 즉, 키들을 가능한 한 균등하게 분포시켜, 해시테이블에서 탐색/삽입/삭제를 평균 O(1)로 만들기 위함특징입력이 길어도 출력은 보통 고정 크기 정수(예: 32비..
2025. 9. 13.