파이썬 70

[프로그래머스] 완주하지 못한 선수

https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(participant, completion): answer='' for idx, p in enumerate(participant): if p in completion: continue else: answer = participant[idx] return answer 아무생각 없이 짠 내 코드😥 이름이 같은 사람이 여러명 있고 그 중 한사람만 완주하는 경우에는 이 코드가 적용..

Algorithm/Problems 2022.10.26

이진 탐색 알고리즘

순차 탐색: 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 확인하는 방법 이진 탐색: 정렬되어 있는 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법 (시작점, 끝점, 중간점을 이용해 탐색 범위를 설정한다.) 단계마다 탐색 범위를 2로 나누는 것과 동일하므로 연산횟수는 log2N에 비례한다. 즉, 시간 복잡도는 O(logN)을 보장한다. # 이진 탐색 소스코드 구현 (재귀 함수) def binary_search(array, target, start, end): if start > end: return None mid = (start + end) // 2 # 찾은 경우 중간점 인덱스 반환 if array[mid] == target: return mid # 중간점의 값보..

Algorithm/algorithm 2022.08.24

[프로그래머스] K번째 수

문제 url: https://school.programmers.co.kr/learn/courses/30/lessons/42748?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(array, commands): answer = [] for com in commands: arr = array[com[0]-1:com[1]] arr.sort() answer.append(arr[com[2]-1]) return answer def solution(array, commands): return list(map(lamb..

Algorithm/Problems 2022.08.21

[프로그래머스] 체육복 (탐욕법 Greedy)

문제 url: https://school.programmers.co.kr/learn/courses/30/lessons/42862 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(n, lost, reserve): # 오름차순으로 정렬 lost.sort() reserve.sort() # 차집합을 이용해 여벌옷이 있는데 도난당했을 경우 제외 new_lost = set(lost) - set(reserve) new_reserve = set(reserve) - set(lost) for r in new_reserve: if r - 1 in new..

Algorithm/Problems 2022.08.16

[프로그래머스] 타겟 넘버 (DFS/BFS)

코딩테스트 공부하기로 마음먹고 처음 풀어본 문제다. 하지만.. 결과는 처.참.했.다. 검색을 해보니 DFS/BFS 문제로 푼다고 한다. 둘 중 스택을 이용한 DFS로 풀이 하는 것으로 이해했고 풀이했다. 문제 2번째 예시인 numbers가 [4,1,2,1] 인 경우를 생각해봤다. def solution(numbers, target): answer = 0 n = len(numbers) # temp, idx 값을 의미 stack = [[numbers[0], 0], [-1*numbers[0], 0]] while stack: temp, idx = stack.pop() idx += 1 if idx < n: stack.append([temp+numbers[idx], idx]) stack.append([temp-nu..

Algorithm/Problems 2022.08.02

[Python] 파일입출력을 이용한 영어사전 만들기

사용자로부터 영단어와 뜻을 입력 받아 영어사전을 만드는 프로그램 1. 제작한 사전은 파일로 저장한다. 2. 저장된 파일을 읽어와 사용자가 입력하는 단어에 대해 뜻을 출력한다. 3. 이미 존재하는 단어는 사전에 추가되지 않는다. 4. 이때 사전 형태는 '영어단어 : 뜻' 으로 이루어진다. English_Dictionary.py import sys sys.path.append('--추가할 경로--') from make_dic import * from print_dic import * def start(): while True: print("---------- 영어 사전 제작 start! ----------") print("| |") print("| 1. 영단어 입력 |") print("| 2. 영단어 출력 ..

Language/Python 2022.01.17

[Jupyter notebook] 실행 시 Bad file descriptor 해결

Jupyter notebook을 다운로드 받은 후 실행하였더니 위와 같은 오류가 나타나며 Jupyter notebook이 꺼지고 실행되지 않았다. (이때, Jupyter notebook을 실행하고 chrome 브라우저가 자동적으로 뜨지 않는다면 첫번째 박스에 있는 URL을 복사해서 붙여넣으면 된다.) Bad file descriptor 요류 해결 문제는 간단했다. Anaconda prompt를 실행한 후 아래와 같은 코드를 입력하여 실행시킨다. pip uninstall pyzmq pip install pyzmq==19.0.2 위와 같이 뜨며 Jupyter notebook을 다시 실행시키면! 위와 같이 잘 작동된다!!

Language/Python 2022.01.14

코드업(CodeUp) 파이썬(Python) 기초 100제(#6001~#6020)

#6001 print("Hello") #6002 (문장 사이 공백) print("Hello Wolrd") print("Hello","World") #6003 (개행) print("Hello") print("World") #6004 (작은 따옴표(') 출력) print("'"+"Hello"+"'") #6005 (큰 따옴표(") 출력) print('"'+"Hello World"+'"') #6006 (특수문자 출력) print("\"!@#$%^&*()\'") #6007 print("\"C:\\Download\\\'hello\'.py\"") #6008 print("print(\"Hello\\nWorld\")") #6009 input()을 사용하면 키보드로 입력한 값을 가져온다. a = input() print(..

Language/Python 2021.09.27

모듈 & 패키지

모듈: 코드를 작은 단위로 나눠서 저장해 놓은 파일 패키지: 모듈을 한 묶음으로 묶어 놓은 것 __name__은 모듈의 이름이 저장된 변수이다. 파일을 직접 실행하면 __name__은 __main__이고 파일을 import 해서 사용하면 __name__은 모듈 이름으로 설정된다. 파일이 직접 실행될 때만 코드를 실행시키고 싶다면 if __name__ == '__main__' 이라는 조건문을 작성하면 된다. main 함수를 사용하면 파일에서 프로그램을 작동시키는 코드의 위치를 쉽게 알 수 있기 때문에 코드의 가독서이 올라간다. if __name__ == '__main__' 조건문을 사용해서 main함수를 호출해 준다. 패키지를 임포트 할 때에는 import package.module 또는 from pack..

Language/Python 2021.08.11

모듈 - 네임스페이스

main.py def circle(r): return 3.14 * r * r from mod import circle circle(3) mod.py def circle(r): return 2 * 3.14 * r main.py 실행결과는 mod.py에 있는 circle함수가 호출되어 r이 3인 원의 둘레를 나타낸다. 이는 한 파일에서 여러 번 정의된 함수를 호출하면 가장 나중에 정의된 함수가 호출되기 때문에 mod.py의 circle(r) 함수가 호출되기 때문이다. main.py def circle(r): return 3.14 * r * r import mod circle(3) mod.py def circle(r): return 2 * 3.14 * r main.py를 실행한 결과는 반지름이 3인 원의 넓이..

Language/Python 2021.07.23