묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
런타임 에러가 발생합니다.
package A4; import java.util.HashMap; import java.util.Scanner; public class Main{ int[] solution(int days, int x, int[] arr) { int[] answer = new int[x]; int rt=0, cnt=0, lt=0; HashMap<Integer, Integer> map = new HashMap<>(); for(rt=0; rt<days; rt++) { cnt++; if(cnt > x) { map.put(arr[lt], map.get(arr[lt])-1 ); if(map.get(arr[lt]) == 0) map.remove(arr[lt]); lt++; cnt--; } map.put(arr[rt], map.getOrDefault(arr[rt], 0)+1 ); if(cnt == x) answer[lt] = map.size(); } return answer; } public static void main(String[] args) { Main main = new Main(); Scanner in = new Scanner(System.in); int input1 = in.nextInt(); int input2 = in.nextInt(); int[] input3 = new int[input1]; for(int i=0; i<input1; i++) { input3[i] = in.nextInt(); } for(int i : main.solution(input1, input2, input3)) { System.out.print(i + " "); } } } 강사님 코드와는 다르나 결과값이 똑같이 나오는데 이 경우는 제 코드가 시간이 훨씬 오래걸려서 런타임 에러가 나는 것일까요?
-
미해결남박사의 파이썬으로 실전 웹사이트 만들기
회원가입 작성 후 실행 시 The session is unavailable because no secret key was set 오류가 발생합니다.
회원가입 페이지 구현 후 실행하니 The session is unavailable because no secret key was set 이런 에러가 발생하는데요, 어떻게 해결해야하는지 궁금합니다. run.py 코드는 첨부합니다.그리고 강의를 보면서 작성하다보면 똑같이 작성한 것 같은데도 에러가 발생하는 경우가 많아서요.. 혹시 강의 코드도 받아볼 수 있을까요? from flask import Flask from flask import request from flask import render_template from flask_pymongo import PyMongo from datetime import datetime from bson.objectid import ObjectId from flask import abort from flask import redirect from flask import url_for from flask import flash import time import math app = Flask(__name__) app.config["MONGO_URI"] = "mongodb://localhost:27017/myweb" mongo = PyMongo(app) @app.template_filter("formatdatetime") def format_datetime(value): if value is None: return "" now_timestamp = time.time() offset = datetime.fromtimestamp(now_timestamp)-datetime.utcfromtimestamp(now_timestamp) value = datetime.fromtimestamp((int(value)/1000)) + offset return value.strftime('%Y-%m-%d %H:%M:%S') @app.route("/list") def lists(): #페이지값(값이 없는 경우 기본값은 1) page = request.args.get("page", 1, type=int) #한페이지당 몇개의 게시물을 출력할지 limit = request.args.get("limit", 5, type=int) search = request.args.get("search", -1, type=int) keyword = request.args.get("keyword", type=str) #최종적으로 완성된 쿼리를 만들 변수 query = {} #검색어 상태를 추가할 리스트변수 search_list = [] if search == 0: search_list.append({"title": {"®ex": keyword}}) elif search == 1: search_list.append({"contents": {"®ex": keyword}}) elif search == 2: search_list.append({"title": {"®ex": keyword}}) search_list.append({"contents": {"®ex": keyword}}) elif search == 3: search_list.append({"name": {"®ex": keyword}}) if len(search_list) > 0: query = {"$or": search_list} print(query) board = mongo.db.board #skip (2번쩨 페이지-1)*10 -> 앞페이지 10개 skip, 이후부터 10개까지 출력 datas =board.find(query).skip((page - 1) * limit).limit(limit) #게시물의 총 갯수 tot_count = board.find(query).count() # 마지막 페이지의 수 last_page_num = math.ceil(tot_count/limit) #페이지 블록 5개씩 표기 block_size = 5 #현재 블록 위치 block_num = int((page - 1)/ block_size) #블럭의 시작 위치 block_start = int((block_size * block_num) +1) #블럭의 끝 위치 block_last = math.ceil(block_start + (block_size - 1)) return render_template( "list.html", datas=datas, limit=limit, page=page, block_start=block_start, block_last=block_last, last_page_num=last_page_num) @app.route("/view/<idx>") def board_view(idx): #idx = request.args.get("idx") if idx is not None: board = mongo.db.board data = board.find_one({"_id": ObjectId(idx)}) if data is not None: result = { "id" : data.get("_id"), "name" : data.get("name"), "title": data.get("title"), "contents":data.get("contents"), "pubdate":data.get("pubdate"), "view":data.get("view") } return render_template("view.html", result=result) return abort(404) @app.route("/write", methods=["GET", "POST"]) def board_write(): if request.method == "POST": name = request.form.get("name") title = request.form.get("title") contents = request.form.get("contents") print(name, title, contents) current_utc_time = round(datetime.utcnow().timestamp()*1000) board = mongo.db.board #있으면 리턴 없으면 board 생성 post = { "name" : name, "title": title, "contents": contents, "pubdate":current_utc_time, "view":0 } x = board.insert_one(post) print(x.inserted_id) return redirect(url_for("board_view", idx=x.inserted_id)) else: return render_template("write.html") @app.route("/join", methods=["GET", "POST"]) def member_join(): if request.method == "POST": name = request.form.get("name", type=str) email = request.form.get("email", type=str) pass1 = request.form.get("pass", type=str) pass2 = request.form.get("pass2", type=str) if name is None or email is None or pass1 is None or pass2 is None: flash("빈값있음") return render_template("join.html") if pass1 != pass2: flash("비밀번호 불일치") return render_template("join.html") members = mongo.db.members cnt = members.find({"email": email}).count() if cnt >0: flash("중복된 이메일 주소입니다.") return render_template("join.html") current_utc_time = round(datetime.utcnow().timestamp(*1000)) post = { "name": name, "email": email, "pass": pass1, "joindate": current_utc_time, "logintime": " ", "logincount": 0 } members.insert_one(post) return "" else: return render_template("join.html") if __name__ == "__main__": app.run(debug=True, host="0.0.0.0", port=9000) 강의와 관련있는 질문을 남겨주세요.• 강의와 관련이 없는 질문은 지식공유자가 답변하지 않을 수 있습니다. (사적 상담, 컨설팅, 과제 풀이 등)• 질문을 남기기 전, 비슷한 내용을 질문한 수강생이 있는지 먼저 검색을 해주세요. (중복 질문을 자제해주세요.)• 서비스 운영 관련 질문은 인프런 우측 하단 ‘문의하기’를 이용해주세요. (영상 재생 문제, 사이트 버그, 강의 환불 등) 질문 전달에도 요령이 필요합니다.• 지식공유자가 질문을 좀 더 쉽게 확인할 수 있게 도와주세요.• 강의실 페이지(/lecture) 에서 '질문하기'를 이용해주시면 질문과 연관된 수업 영상 제목이 함께 등록됩니다.• 강의 대시보드에서 질문을 남길 경우, 관련 섹션 및 수업 제목을 기재해주세요. • 수업 특정 구간에 대한 질문은 꼭 영상 타임코드를 남겨주세요! 구체적인 질문일수록 명확한 답을 받을 수 있어요.• 질문 제목은 핵심 키워드를 포함해 간결하게 적어주세요.• 질문 내용은 자세하게 적어주시되, 지식공유자가 답변할 수 있도록 구체적으로 남겨주세요.• 정확한 질문 내용과 함께 코드를 적어주시거나, 캡쳐 이미지를 첨부하면 더욱 좋습니다. 기본적인 예의를 지켜주세요.• 정중한 의견 및 문의 제시, 감사 인사 등의 커뮤니케이션은 더 나은 강의를 위한 기틀이 됩니다. • 질문이 있을 때에는 강의를 만든 지식공유자에 대한 기본적인 예의를 꼭 지켜주세요. • 반말, 욕설, 과격한 표현 등 지식공유자를 불쾌하게 할 수 있는 내용은 스팸 처리 등 제재를 가할 수 있습니다.