Tiny Finger Point Hand With Heart
본문 바로가기
728x90
반응형

파이썬27

[알고리즘/Python] 깊이우선탐색 (DFS) 그래프 탐색 알고리즘 : 시작 정점에서 간선을 타고 이동할 수 있는 모든 정점을 찾는 알고리즘 깊이우선탐색 (Depth-First Search, DFS) 그래프의 깊이를 우선으로 탐색하기 위해 스택의 개념을 활용한다. 너비우선탐색 (Breadth-First Search, BFS) 그래프의 너비를 우선으로 탐색하기 위해 큐의 개념을 활용한다. 깊이우선탐색(Depth-First Search, DFS) 시작 정점으로부터 갈 수 있는 하위 정점까지 가장 깊게 탐색하고, 더 이상 갈 곳이 없다면 마지막 갈림길로 돌아와서 다른 정점을 탐색하며 결국 모든 정점을 방문하는 순회 방법 깊이우선탐색(DFS)의 특징 모든 정점을 방문할 때 유리하다. 따라서 경우의 수, 순열과 조합 문제에서 많이 사용 한다. 너비우선탐색(B.. 2023. 1. 18.
[알고리즘/Python] 에라토스테네스의 체 에라토스테네스의 체 -> 여러 개의 수가 소수인지 아닌지를 판별할 때 사용하는 대표적인 알고리즘. -> N보다 작거나 같은 모든 소수를 찾을 때 사용할 수 있다. 소수란? 1과 자신 자신 외의 약수를 가지지 않는 1보다 큰 자연수를 말한다. > 동작 과정 2부터 N까지의 모든 자연수를 나열한다. 남은 수 중에서 아직 처리하지 않은 가장 작은 수 i를 찾는다. 남은 수 중에서 i의 배수를 모두 제거한다. (i는 제거하지 않는다.) 더 이상 반복할 수 없을 때까지 2번과 3번 과정을 반복한다. > 장단점 에라토스테네스의 체 알고리즘의 시간 복잡도는 O(NloglogN)으로 사실상 선형 시간에 동작할 정도로 빠르다. 그래서 다수의 소수를 찾아야 하는 문제에서 자주 사용된다. 하지만 알고리즘을 수행할 때 N의 .. 2023. 1. 18.
더 이상 미룰 수 없다. 나의 취직과 파이썬메서드/함수공부(메서드와 함수의 차이) 알고리즘을 풀면서 파이썬의 내장함수와 메서드를 제대로 활용하지 못하고 있음을 느꼈고, 저번 프로젝트했을 때에도 함수 사용법을 제대로 몰라 활용하지 못했던 경험이 있다. 그래서 이번에 정확이 알아가고자 한다. 너무 늦었지만...당장시작합니다 먼저 함수와 메서드의 차이를 알아보자. 1. 함수(function) 함수 기본구조 함수명() def function_name(arg1,arg2,...): ... # function body ... def Subtract(a,b): return a-b print(Subtract(10,12)) print(Subtract(15,6)) 결과 = -2 결과 = 9 함수 이름을 통해 함수를 사용할 수 있다. 함수 예) print(), type(), str(), int(), boo.. 2023. 1. 16.
38. 인터페이스와 추상클래스의 차이 추상 클래스(abstract class)란? 파이썬은 추상 클래스(abstract class)를 제공한다. 추상 클래스란 구현 내용이 없고 메소드 목록만 가진 클래스이며, 추상클래스 자체로는 인스턴스화가 불가능 하다. 추상 클래스는 클래스의 메소드를 상속 받는 파생 클래스에게 구현하도록 강제하기 위해 사용 된다. 추상클래스란 미구현 추상메소드를 한개 이상 가지며, 자식클래스에서 해당 추상 메소드를 반드시 구현하도록 강제한다. 상속받은 클래스는 추상메소드를 구현하지 않아도, import할 때까지 에러는 발생하지 않으나 객체를 생성할 시 에러가 발생한다. 추상클래스를 만들기 위한 형식은 아래와 같다. 반드시 abc 모듈을 import 해야다. 추상메소드는 생략하면 기본적인 클래스 기능은 동작합니다만, 추상메.. 2023. 1. 16.
[프로그래머스/Python][level 1] 소수 만들기 - 12977 [level 1] 소수 만들기 - 12977 문제 링크 성능 요약 메모리: 10.3 MB, 시간: 0.01 ms 구분 코딩테스트 연습 > Summer/Winter Coding(~2018) 채점결과 정확성: 100.0 합계: 100.0 / 100.0 문제 설명 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요. 제한사항 nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다. nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다... 2023. 1. 13.
[백준/Python] [Gold IV] PPAP - 16120 [Gold IV] PPAP - 16120 문제 링크 성능 요약 메모리: 161764 KB, 시간: 236 ms 분류 자료 구조(data_structures), 그리디 알고리즘(greedy), 스택(stack), 문자열(string) 문제 설명 bryan은 PPAP를 좋아한다. bryan은 어떻게 하면 사람들에게 PPAP를 전파할 수 있을까 고민하던 중 PPAP 문자열이라는 것을 고안하게 되었다. PPAP 문자열은 문자열 P에서 시작하여, 문자열 내의 P를 PPAP로 바꾸는 과정을 반복하여 만들 수 있는 문자열로 정의된다. 정확하게는 다음과 같이 정의된다. P는 PPAP 문자열이다. PPAP 문자열에서 P 하나를 PPAP로 바꾼 문자열은 PPAP 문자열이다. 예를 들어 PPAP는 PPAP 문자열이다. 또한.. 2023. 1. 12.
[백준/Python/Silver III] 1, 2, 3 더하기 - 9095 [Silver III] 1, 2, 3 더하기 - 9095 문제 링크 성능 요약 메모리: 113112 KB, 시간: 124 ms 분류 다이나믹 프로그래밍(dp) 문제 설명 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다. 출력 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. 👉나의생각.. 2023. 1. 11.
[프로그래머스/파이썬][level 0] 배열 회전시키기 - 120844 [level 0] 배열 회전시키기 - 120844 문제 링크 성능 요약 메모리: 10.1 MB, 시간: 0.00 ms 구분 코딩테스트 연습 > 코딩테스트 입문 채점결과 정확성: 100.0 합계: 100.0 / 100.0 문제 설명 정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다. 배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return하도록 solution 함수를 완성해주세요. 제한사항 3 ≤ numbers의 길이 ≤ 20 direction은 "left" 와 "right" 둘 중 하나입니다. 입출력 예 numbersdirectionresult [1, 2, 3] "right" [3, 1, 2] [4, 455, 6, 4, -1, 45, 6].. 2022. 12. 25.
[프로그래머스][파이썬]배열의 유사도 - 120903 [level 0] 배열의 유사도 - 120903 문제 링크 성능 요약 메모리: 10 MB, 시간: 0.01 ms 구분 코딩테스트 연습 > 코딩테스트 입문 채점결과 정확성: 100.0 합계: 100.0 / 100.0 문제 설명 두 배열이 얼마나 유사한지 확인해보려고 합니다. 문자열 배열 s1과 s2가 주어질 때 같은 원소의 개수를 return하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ s1, s2의 길이 ≤ 100 1 ≤ s1, s2의 원소의 길이 ≤ 10 s1과 s2의 원소는 알파벳 소문자로만 이루어져 있습니다 s1과 s2는 각각 중복된 원소를 갖지 않습니다. 입출력 예 s1s2result ["a", "b", "c"] ["com", "b", "d", "p", "c"] 2 ["n", "om.. 2022. 12. 23.
728x90
반응형