본문 바로가기
반응형

Python/Algorithm11

[Python] raise - 에러 발생시키기, 예외 발생시키기 안녕하세요. 위기의 코딩맨입니다. 오늘은 raise에 대해서 알아보려 합니다. raise는 주로 에러나 예외를 발생 시킬때 사용되는 코드입니다. 저는 주로 에러 메시지 체크 등 에러를 발생시켜야 확인할 수 있는 부분을 확인하기 위해 사용합니다. 사용방법은 간단합니다. 에러를 반환하기 위한 곳에 작성해주시면 됩니다. [ raise ] try: list_ = [1,2,4,5] if 3 in list_: raise except: print("3이 포함되어 있습니다") 간단한 예제로 설명드리도록 하겠습니다. list안에 3이 포함되어 있으면 오류를 반환하게 해놨습니다. 위에 코드는 3이 포함되어 있지 않으므로 오류를 반환하지 않지만, list에 3을 포함 시키게 되면, 오류로 반환하게됩니다. 하지만, 위에 "코.. 2023. 7. 26.
[Python] 정규식 표현 - 비밀번호 유효성 검사 안녕하세요. 위기의 코딩맨입니다. 오늘은 일반적으로 개발자로써, 자주 사용하게될 비밀번호 유효성 검사하는법을 간단하게 알아보려합니다! 다음, 네이버, 구글에서 회원가입을 위해 아이디를 입력하고 비밀번호를 입력하는데 여러 조건들이 충족해야만 회원가입이 진행된것을 보신적 있으신가요?! 해당 화면조건을 확인하기 위해 정규식을 대체적으로 사용하고 있습니다. 여기서 계속 말하는 정규식이란 무엇일까요? Regex로 표현을 자주하며, 사전적으로는 특정한 규칙을 갖고있는 문자열의 집합을 의미하고 있습니다. 이런 의미를 갖고있는 정규식을 입력된 값을 보고 해당 패턴을 찾아내는 방식입니다. ㅎㅎ 정규식은 나름 간단하게 표현을 할 수 있지만 표현 방식을 따로 외우지 않으면 이해가 어렵다는 단점도 존재합니다! 이제 pyth.. 2023. 7. 24.
[We-Co] 미로 탐색 - 백준 2178번 안녕하세요. 위기의 코딩맨입니다. 오늘은 백준 2178번 문제 미로 탐색 문제를 풀어보도록 하겠습니다. https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 문제를 이해하셨다면 input으로 데이터를 받아야합니다. 4 6 101111 101010 101011 111011 4,6을 A,B로 받아주도록 합니다. A, B = map(int,input().split()) 그리고 밑에 좌표에 해당 값들을 넣어주어야 합니다. graph = [] for _ in range(A): graph.a.. 2022. 2. 22.
[We-Co] 구현 - 상하좌우 이동 알고리즘, 좌표이동 안녕하세요. 위기의 코딩맨입니다. 오늘은 리스트 상하좌우 이동하는 알고리즘에 대해 알아보도록 하겠습니다. 가끔 코딩 테스트를 진행할 때, 많이 사용되는 알고리즘이므로 알아두시면 좋습니다. [ Code ] input_num_ = 5 input_List = ["R","R","R","U","D","D"] xd = [0,0,-1,1] yd = [1,-1,0,0] x,y = 1, 1 list_ = ["R", "L", "U", "D"] for input_ in input_List: for i in range(len(list_)): if input_ == list_[i]: nx = x + xd[i] ny = y + yd[i] if nx input_num_: continue x, y = nx, ny 문제를 보시면 in.. 2022. 2. 21.
[We-Co] 이진탐색 알고리즘- Python 안녕하세요. 위기의 코딩맨입니다. 오늘은 이진탐색 알고리즘에 대해 알아보도록 하겠습니다. 이진탐색 알고리즘은 반복, 순환 구조에 사용되며 알고리즘의 입력으로 정렬한 리스트와 Key 값, A의 탐색 범위인 Low와 High가 제공되어야 합니다. list_ = [1,3,8,13,13,16,21,26,27,30,33,36,39,41,44,49]를 기준으로 사용하였으며 인자는 리스트, 찾고자하는 숫자, Low, High을 받습니다. [ 순환 구조 ] def binary_Search_1(A, Key, Low, High): if Low 2022. 2. 16.
[We-Co] DFS, BFS - Python 안녕하세요. 위기의 코딩맨입니다. 코딩테스트를 진행하기 위해서는 알아야할 DFS, BFS! 깊이우선탐색, 너비우선탐색 방법에 대해서 알아보도록 하겠습니다. dict_ = {'A' : {'B', 'C'}, 'B' : {"A", "D"}, "C" : {"A", "D", "E"}, "D" : {"B", "C", "F"}, "E" : {"C", "G", "H"}, "F" : {"D"}, "G" : {"E", "H"}, "H" : {"E", "G"}} [ DFS - 깊이 우선 탐색 ] DFS는 Depth First Search로 스택을 이용한 미로를 탐색하는 알고리즘과 유사합니다. 한 방향으로 진행하다 더 이상 갈 수 없게 되면 다시 가장 가까운 곳으로 이동하여 다른 방향을 탐색하는 방식입니다. 위에 선언한 py.. 2022. 2. 15.
[We-Co] 최대 공약수 , 최소 공배수 - Python 안녕하세요. 위기의 코딩맨입니다. 오늘은 코딩 문제에서 가끔 사용되는 최대 공약수, 최소 공배수 구하는 방법을 알아보도록 하겠습니다. [ 최대 공약수 ] 유클리드 알고리즘을 사용하여 최대 공약수를 구하는 코드입니다. 입력 값 A, B 를 받아 나눠 % 연산 후 몫이 아닌 나머지를 구합니다. def Max_Value(A, B): while B != 0: R = A % B A = B B = R return A 결과를 확인해 보면 Max_Value(12,3) Max_Value(48,60) [ 최소 공배수 ] 최소 공배수 구하는 방법은 주어진 A,B의 값을 구하고 최대 공약수를 나눠주면 값을 쉽게 구할 수 있습니다. // 연산자는 나누기 연산 후 소수점 이하의 수를 버리고, 정수 부분의 수를 남겨주는 연산자 입.. 2022. 2. 15.
[We-Co] Python 리스트 sort(), sorted() 안녕하세요. 위기의 코딩맨입니다. 오늘은 python의 리스트 정렬에 대해 알아보도록 하겠습니다. 크게 sort() 방식과 sorted() 방식이 존재하는데 상황에 맞게 사용하시면 됩니다! 가장 큰 차이점은 sort()는 기존 리스트가 바뀌고 리턴 값이 존재하지 않고 sorted()는 기존 리스트는 유지하며 정렬된 값을 리턴받습니다. 또한 리스트.sort()는 리스트 형의 메소드 형식으로 되어있으며, sorted(리스트)는 내장함수 형식입니다. [ Sort() ] 바로 예제소스를 보도록 하겠습니다. list_1 = [5,3,6,1] list_2 = [] list_2 = list_1.sort() print(list_1) print(list_2) 해당 소스는 list_1의 값 [5,3,6,1]을 정렬하여 l.. 2021. 8. 3.
[We-Co] 퀵정렬 (Quick sort) 안녕하세요. 위기의 코딩맨 입니다. 오늘은 퀵정렬에 대해서 알아보도록 하겠습니다. [ 퀵정렬 ] 말 그대로 빠르게 정렬하는 방식입니다. 기준 값을 설정하여, 그 값보다 작은 숫자, 큰 숫자를 서로 다른 배열로 저장합니다. 그 나눈 2개의 배열을 재귀함수로 나누는 과정을 반복하여 정렬하는 방식입니다. 소스 코드를 확인해보겠습니다. quickArray = [5, 1, 3, 2, 10] def QuickSort(quickArray): if len(quickArray) < 2: return quickArray else: pivot = quickArray[0] list_1 = list(filter(lambda x: x < pivot, quickArray)) list_2 = list(filter(lambda x: .. 2021. 7. 31.
반응형