알고리즘 공부💥 98

[jungol] Intermediate_Coder / 분할과정복 / 4523 / Tutorial: STL Sort 1 / python

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=3882&sca=30 JUNGOL www.jungol.co.kr import copy N = int(input()) N_list = list(map(int, input().split())) s, e = map(int, input().split()) copy_list = copy.deepcopy(N_list) slice_sort = copy_list[s:e+1] slice_sort.sort() j = 0 for i in range(s, e+1): copy_list[i] = slice_sort[j] j += 1 N_list.sort() print(*copy_list) print(*N_list)

[프로그래머스] 큰수만들기 / python

큰 수 만들기 문제 설명 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다. 예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다. 문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만들 수 있는 수 중 가장 큰 숫자를 문자열 형태로 return 하도록 solution 함수를 완성하세요. 제한 조건 number는 1자리 이상, 1,000,000자리 이하인 숫자입니다. k는 1 이상 number의 자릿수 미만인 자연수입니다. 입출력 예 numberkreturn "1924" 2..

[프로그래머스] 카펫 / python

카펫 문제 설명 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다. 노란색 격자의 수 yellow는 1 이상 2,000,000 이하인 자연수입니다. 카펫의 가로 길이는 세로 길이와 같거나, 세로 길이..

[프로그래머스] 소수찾기 / python

소수 찾기 문제 설명 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers는 길이 1 이상 7 이하인 문자열입니다. numbers는 0~9까지 숫자만으로 이루어져 있습니다. "013"은 0, 1, 3 숫자가 적힌 종이 조각이 흩어져있다는 의미입니다. 입출력 예 numbersreturn "17" 3 "011" 2 입출력 예 설명 예제 #1 [1, 7]으로는 소수 [7, 17, 71]를 만들 수 있습니다. 예제 #2 [0, 1, 1]으로는 소수 ..

[알고리듬] Array / 퀵소트 / python

🤔퀵소트란 ? 불안정 정렬에 속하며, 다른 원소와의 비교만으로 정렬하는 비교 정렬에 속한다. 분할과 정복 알고리즘으로, 평균적으로 가장 빠른 수행 속도를 자랑하는 정렬방법이다. 머지소트와 달리 퀵소트는 리스트를 비균등하게 분할한다. 분할과 정복 방법을 이용한다. 문제를 해결하기 쉬운 작은 문제들로 나누고 해결한 다음, 결과를 모아서 원래의 문제를 해결하는 방법이다. 😲퀵소트 알고리즘 진행 순서 리스트 안에 있는 한 요소를 선택한다. (랜덤으로 선택하는 방법, 가운데 인덱스를 선택하는 방법, 가장 오른쪽 인덱스를 선택하는 방법 등이 있다.) 이렇게 고른 원소를 pivot 이라고 한다. pivot을 기준으로 pivot보다 작은 요소들은 모두 pivot의 왼쪽으로 옮겨지고 pivot보다 큰 요소들은 모두 pi..

[jungol] Intermediate_Coder / 분할정복 / 3518 / Tutorial : 퀵소트(Quick Sort 빠른정렬) / python

3518 : Tutorial : 퀵소트(Quick Sort 빠른정렬) 제한시간1000 ms 메모리제한512 MB 해결횟수450 회 시도횟수1083 회 문제 [퀵소트(Quick Sort)] 퀵소트는 토니 호어(찰스 엔터니 리처드 호어 - Charles Antony Richard Hoare)가 개발한 알고리즘이다. 원소들간의 비교와 교환을 통하여 정렬하는 비교기반정렬 알고리즘이다. 원소들 중에 같은 값이 있는 경우 정렬후에 이들의 순서가 달라질 수 있어 불안정 정렬에 속한다. ( 3을 피봇으로 하고 전통적인 방법으로 하는 예 51, 52, 3, 2, 1) ( 22를 피봇으로 하고 아래 설명한 방법으로 하는 예 21, 3, 1, 22) ​ N개의 데이터를 정렬할 때, ​시간복잡도는 ​평균 O(N * logN)..

[프로그래머스] 카카오기출 / 문자열압축 / python

https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 🤔문제접근 1. ( 1개 ~ 전체길이 나누기 2의 몫 )의 길이를 갖는 패턴을 완전탐색 비교해야한다. 2. 옆친구와 패턴이 같을 경우, 다를 경우를 분기하여 처리를 해준다. 3. i 길이의 패턴 비교를 적용한 temp_word라는 문자열을 도출한 다음 temp_word의 길이중 가장 작은 친구를 답으로 도출한다. 🌈코드구현 def solution(s): ..

[프로그래머스] 카카오기출 / 합승택시 / python

https://programmers.co.kr/learn/courses/30/lessons/72413 코딩테스트 연습 - 합승 택시 요금 6 4 6 2 [[4, 1, 10], [3, 5, 24], [5, 6, 2], [3, 1, 41], [5, 1, 24], [4, 6, 50], [2, 4, 66], [2, 3, 22], [1, 6, 25]] 82 7 3 4 1 [[5, 7, 9], [4, 6, 4], [3, 6, 1], [3, 2, 3], [2, 1, 6]] 14 6 4 5 6 [[2,6,6], [6,3,7], [4,6,7], [6,5,11], [2,5,12], [5,3,20], [2,4 programmers.co.kr 🤔문제접근 1. 플로이드-워셜 알고리즘으로 각 출발지 -> 도착지의 가장 최저 요금..