프린터 큐 문제 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다. 현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를 확인한다. 나머지 문서들 중 현재 문서보다 중요도가 높은 문서가 하나라도 있다면, 이 문서를 인쇄하지 않고 Queue의 가장 뒤에 재배치 한다. 그렇지 않다면 바로 인쇄를 한다. 예를 들어 Queue에 4개의 문서(A B C D)가 있고, 중..
파이썬
오늘 공부한 머신러닝 선형회귀를 캐글(Kaggle)의 dataset을 활용해 실습한 내용을 기록하기 위해 작성한 글이다 순서 Kaggle에서 연차-연봉 데이터셋(Salary)을 다운로드 받아 연차로부터 연봉을 예측하는 과정은 다음과 같다 1. 캐글(Kaggle) 환경 변수 설정 (os) 2. 데이터셋 다운로드 3. 데이터셋 로드 (pandas.load) 4. 데이터셋 크기 확인 (df.shape) * df : data frame 5. 데이터셋 그려서 살펴보기 (seaborn.pairplot) 6. 데이터셋 가공 [1] (np.array) 7. 데이터셋 가공 [2] (data.reshape) 8. 데이터셋 분할 (train_test_split) 9. 학습 (Sequental, Dense) 10. 검증 데이..

나만의 파이썬 게임을 만들어보자 # 이전글 - [스파르타코딩클럽] 내일배움캠프 - 프로젝트 #2 pygame (1) 이전 글에서 정한 해야 할 일들의 목록이다 1. 스페이스바로 STOP 버튼 이벤트 발생 (완료) 2. 스타캐치 성공 시 성공 이펙트 표시 (완료) 3. 스타포스 강화 결과 팝업 표시 ( 기존에는 강화 수치만 변경 ) (완료) 4. DB 연동 및 배포 가능한지 확인 (완료) pymongo를 이용하여 mongoDB 와 연동하여 로그인 기능을 구현했다 회원 가입 기능은 따로 구현하지 않았다 대신 존재하지 않는 ID와 패스워드 입력 시 입력한 ID와 패스워드로 자동으로 회원가입된다 물론 이미 존재하는 ID로 로그인 하는 경우에는 패스워드가 틀리면 로그인에 실패하게 된다 ID와 패스워드의 포커스 전..

나만의 파이썬 게임을 만들어보자 나만의 GUI 파이썬 게임을 구현하는 과제가 주어졌다 자유롭게 만들고 싶은 게임을 정해서 구현하는 개인 프로젝트 형태다 프로젝트 발제 이후 바로 어떤 게임을 만들지 찾기 시작했다 테트리스, 벽돌깨기 등 직접 구현하려면 시간에 쫓겨 결국 남의 코드를 사용하게될 것 같은 게임은 피해 어떤 게임을 만들어 볼지 고민끝에 결정했다 내가 만들기로한 게임은 메이플스토리 스타포스 강화하는 미니게임이다 메이플스토리는 RPG 게임으로 강해지기 위해 무기를 강화하곤 한다 하지만 어느 정도 강화하고 나서 부터는 값비싼 강화비용으로 인해 마음껏 강화하지 못했었던 추억이 있다 결코 쉽지 않은 강화 게임으로 최대한 PC 게임의 스타포스 강화와 유사하게 만들겠다고 생각하며 작업을 시작했다 화면을 구성..
1. pygame 선언 - import 2. pygame 초기화 - pygame.init() 3. 전역 변수 - size, screen(pygame.display.set_mode(size)), clock(pygame.time.Clock()) 4. pygame 메인 루프 (while) { } 아래는 pygame의 구조를 파악하는데 도움이 된 예제이다 # Import a library of functions called 'pygame' import pygame # Initialize the game engine pygame.init() # Define the colors we will use in RGB format BLACK= ( 0, 0, 0) WHITE= (255,255,255) BLUE = ( 0, ..
파이썬에서 인덱스값으로 댓글을 삭제하는 작업을 하려고 여기저기 찾아보다가 ObjectId 클래스를 알게 되었다 파이썬에는 이 클래스가 내장되어있지 않아서 별도로 import해주어야 한다 from bson.objectid import ObjectId import한 ObjectId의 사용 예는 다음과 같다 @app.route('/profile/delete', methods=['POST']) def delete_comment(): idx_receive = request.form['idx_give'] db.comments.delete_one({'_id': ObjectId(idx_receive)}) return jsonify({'msg': '댓글이 삭제되었습니다.'})
GET 방식도 POST와 똑같이 request.form 으로 데이터 받아올거라 생각했다가 KeyError에 시달렸다. 같은 문제로 구글 여행을 떠나지 않기 위해 기록한다. @app.route('/profile', methods=['GET']) def view_profile(): name_receive = request.args.get('name') ... return jsonify({ 'user_name': name_receive }) request.args.get() 메서드를 사용하면 $.ajax({ type: "GET", url: "/profile", data: {name:name}, success: function (response) { ... } GET 방식 ajax에서 보낸 데이터를 받을 수 있다.
scores list 내 dictionary 의 name과 score을 모두 출력하려한다. scores = [ {'name':'영수','score':70}, {'name':'영희','score':65}, {'name':'기찬','score':75}, {'name':'희수','score':23}, {'name':'서경','score':99}, {'name':'미주','score':100}, {'name':'병태','score':32} ] 아래는 f-string 을 사용하지 않은 경우의 방법이다. for s in scores: name = s['name'] score = str(s['score']) print(name+'는 '+score+'점 입니다') 아래는 f-string 을 사용한 경우의 방법이다. f..