본문 바로가기

알고리즘7

[알고리즘] 프로그래머스 - 해시 - 전화번호 목록 문제 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 제한 사항 phone_book의 길이는 1 이상 1,000,000 이하입니다. 각 전화번호의 길이는 1 이상 20 이하입니다. 입출력 예제 phone_book return [119, 976742.. 2019. 12. 4.
[알고리즘] 프로그래머스 - 해시 - 완주하지 못한 선수 출처: https://programmers.co.kr/learn/courses/30/lessons/42576/solution_groups?language=python3&type=all 문제 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 2.. 2019. 12. 4.
[알고리즘] 삽입정렬, 인서션 소트 (Insertion Sort) 삽입정렬, 인서션 소트 (insertion Sort) i번째 인덱스의 값을 0부터 i-1번째의 값들 중 자신의 위치를 찾아 정렬을 완성하는 알고리즘. 처음 key값을 "두번째 값"부터 시작한다. 최선의 경우: O(n) 비교 회수: 이동없이 한번의 비교만 이루어진다. 외부 루프: (n-1)번 최악의 경우: O(n^2) 비교 회수: 외부 루프 안의 각 반복마다 i번의 비교 수행 교환 회수: 외부 루프의 각 단계마다 (i+2)번의 이동 발생 영상으로 보기 - Folk Dance Insert-sort with Romanian folk dance Python Code def insertion_sort(arr): arr_len = range(1, len(arr)) for i in arr_len: arr_sort_l.. 2019. 8. 8.
[알고리즘] 선택정렬, 셀렉션소트 (Selection Sort) 선택정렬, 셀렉션소트 (Selection Sort) 1. 주어진 배열에서 최솟값을 찾아 맨 앞에 위치한 값과 SWAP한다. 2. 다음 수행시에 처음 위치의 값을 제외한 나머지 값들을 1번을 수행한다. 장점: 자료 이동 횟수가 미리 결정된다. 단점: 값이 같은 레코드가 있는 경우 상대적인 위치가 변경될 수 있다. 비교회수: 외부 루프: (n-1)번 내부 루프: n-1, n-2, ..., 2, 1번 교환회수: 외부 루프의 실행 회수와 동일 SWAP을 위한 3번의 이동이 필요 영상으로 보기 - Folk Dance Python Code def selection_sort(arr): arr_len = range(len(arr)) for i in arr_len: min_idx = i arr_sub_len = rang.. 2019. 8. 7.
[알고리즘] 거품정렬, 버블 소트(Bubble sort) 거품정렬, 버블소트 (Bubble Sort) 인접한 두 원소를 비교하여 정렬하는 알고리즘. 두 원소의 순서가 정렬되어 있지 않을 경우 두 원소를 swap한다. 1회전 수행 후 가장 큰 값이 뒤로가므로 2회전 때는 맨 끝에 있는 자료는 정렬에서 제외한다. 비교회수: n-1, n-2, ..., 2, 1 번 = n(n-1)/2 교환회수: 입력 자료가 역순으로 정렬되어 있는 최악의 경우, 한 번 교환하기 위하여 3번의 이동(SWAP 함수의 작업)이 필요하므로 (비교 횟수 * 3) 번 = 3n(n-1)/2 입력 자료가 이미 정렬되어 있는 최상의 경우, 자료의 이동이 발생하지 않는다. T(n) = O(n^2) 영상으로 보기 - Folk Dance Bubble-sort with Hungarian ("Csángó") .. 2019. 8. 6.
[알고리즘] Extra Long Factorials 해커랭크 문제. Extra Long Factorials 링크: https://www.hackerrank.com/challenges/extra-long-factorials/problem Author: vatsalchanana Difficulty: Medium #!/bin/python3 import math import os import random import re import sys # Complete the extraLongFactorials function below. def extraLongFactorials(n): total = 1 while n > 1: total = total * n n -= 1 print(total) if __name__ == '__main__': n = int.. 2019. 7. 24.
[알고리즘] Sherlock and Squares 해커랭크 문제. Sherlock and Squares 링크: https://www.hackerrank.com/challenges/sherlock-and-squares/problem Author: darkshadows Difficulty: Easy 문제 요약: a, b 포함 사이의 수중 제곱수의 개수를 찾아라. #!/bin/python3 import math import os import random import re import sys # Complete the squares function below. def squares(a, b): count = 0 import math n = a while n 2019. 7. 18.