Upload files to "백준"
This commit is contained in:
41
백준/30805.py
Normal file
41
백준/30805.py
Normal file
@@ -0,0 +1,41 @@
|
||||
import sys
|
||||
|
||||
input = sys.stdin.readline
|
||||
|
||||
n = int(input())
|
||||
A = list(map(int, input().split()))
|
||||
m = int(input())
|
||||
B = list(map(int, input().split()))
|
||||
|
||||
nextA = [[-1] * 101 for _ in range(n+1)]
|
||||
nextB = [[-1] * 101 for _ in range(m+1)]
|
||||
|
||||
for i in range(n-1, -1 ,-1):
|
||||
for num in range(1, 101):
|
||||
nextA[i][num] = nextA[i+1][num]
|
||||
nextA[i][A[i]] = i
|
||||
|
||||
for i in range(m-1, -1 ,-1):
|
||||
for num in range(1, 101):
|
||||
nextB[i][num] = nextB[i+1][num]
|
||||
nextB[i][B[i]] = i
|
||||
|
||||
result = []
|
||||
i = j = 0
|
||||
while i<n and j<m:
|
||||
found = False
|
||||
for num in range(100, 0, -1):
|
||||
posA = nextA[i][num]
|
||||
posB = nextB[j][num]
|
||||
if posA != -1 and posB != -1:
|
||||
result.append(num)
|
||||
i = posA+1
|
||||
j = posB+1
|
||||
found = True
|
||||
break
|
||||
if not found:
|
||||
break
|
||||
|
||||
print(len(result))
|
||||
if result:
|
||||
print(" ".join(map(str, result)))
|
||||
38
백준/42860.py
Normal file
38
백준/42860.py
Normal file
@@ -0,0 +1,38 @@
|
||||
def solution(name):
|
||||
Alphabet = {'A' : 1, 'B':2, 'C':3, 'D':4, 'E':5, 'F':6, 'G':7, 'H':8, 'I':9, 'J':10, 'K':11, 'L':12, 'M':13, 'N':14,'O':15,'P':16,'Q':17,'R':18,'S':19,'T':20,'U':21,'V':22,'W':23,'X':24,'Y':25,'Z':26}
|
||||
answer = 0
|
||||
pointer = 1
|
||||
leftpointer = 1
|
||||
rightpointer = 1
|
||||
count=0
|
||||
name_length = len(name)
|
||||
for spell in name:
|
||||
leftpointer = 1
|
||||
rightpointer = 1
|
||||
left_answer = 0
|
||||
right_answer = 0
|
||||
spell_num = Alphabet[spell]
|
||||
|
||||
while(spell_num!=leftpointer):
|
||||
leftpointer -= 1
|
||||
if(leftpointer == 0):
|
||||
leftpointer = 26
|
||||
left_answer += 1
|
||||
while(spell_num!=rightpointer):
|
||||
rightpointer+=1
|
||||
if(rightpointer==27):
|
||||
rightpointer = 1
|
||||
right_answer += 1
|
||||
answer += min(left_answer, right_answer)
|
||||
|
||||
j = spell_num + 1
|
||||
while j < spell_num and spell_num == 1:
|
||||
j+=1
|
||||
|
||||
move_case = min(spell_num, name_length - j)
|
||||
answer = min(move_case, answer)
|
||||
rightanswer=answer
|
||||
|
||||
if name:
|
||||
answer -= 1
|
||||
return answer
|
||||
31
백준/84512.py
Normal file
31
백준/84512.py
Normal file
@@ -0,0 +1,31 @@
|
||||
import sys
|
||||
from collections import deque
|
||||
|
||||
sys.setrecursionlimit(10**6)
|
||||
|
||||
|
||||
arr_word = ['A', "E", "I", "O", "U"]
|
||||
|
||||
alphabet_dict={}
|
||||
|
||||
temp = 0
|
||||
|
||||
|
||||
|
||||
for i in arr_word:
|
||||
temp += 1
|
||||
alphabet_dict[i] = temp
|
||||
for j in arr_word:
|
||||
temp += 1
|
||||
alphabet_dict[i+j] = temp
|
||||
for k in arr_word:
|
||||
temp += 1
|
||||
alphabet_dict[i+j+k] = temp
|
||||
for l in arr_word:
|
||||
temp += 1
|
||||
alphabet_dict[i+j+k+l] = temp
|
||||
for m in arr_word:
|
||||
temp += 1
|
||||
alphabet_dict[i+j+k+l+m] = temp
|
||||
|
||||
|
||||
62
백준/app 2.py
Normal file
62
백준/app 2.py
Normal file
@@ -0,0 +1,62 @@
|
||||
#!/usr/bin/python3
|
||||
from flask import Flask, request, render_template, g
|
||||
import sqlite3
|
||||
import os
|
||||
import binascii
|
||||
|
||||
app = Flask(__name__)
|
||||
app.secret_key = os.urandom(32)
|
||||
|
||||
try:
|
||||
FLAG = open('./flag.txt', 'r').read()
|
||||
except:
|
||||
FLAG = '[**FLAG**]'
|
||||
|
||||
DATABASE = "database.db"
|
||||
if os.path.exists(DATABASE) == False:
|
||||
db = sqlite3.connect(DATABASE)
|
||||
db.execute('create table users(userid char(100), userpassword char(100), userlevel integer);')
|
||||
db.execute(f'insert into users(userid, userpassword, userlevel) values ("guest", "guest", 0), ("admin", "{binascii.hexlify(os.urandom(16)).decode("utf8")}", 0);')
|
||||
db.commit()
|
||||
db.close()
|
||||
|
||||
def get_db():
|
||||
db = getattr(g, '_database', None)
|
||||
if db is None:
|
||||
db = g._database = sqlite3.connect(DATABASE)
|
||||
db.row_factory = sqlite3.Row
|
||||
return db
|
||||
|
||||
def query_db(query, one=True):
|
||||
cur = get_db().execute(query)
|
||||
rv = cur.fetchall()
|
||||
cur.close()
|
||||
return (rv[0] if rv else None) if one else rv
|
||||
|
||||
@app.teardown_appcontext
|
||||
def close_connection(exception):
|
||||
db = getattr(g, '_database', None)
|
||||
if db is not None:
|
||||
db.close()
|
||||
|
||||
@app.route('/')
|
||||
def index():
|
||||
return render_template('index.html')
|
||||
|
||||
@app.route('/login', methods=['GET', 'POST'])
|
||||
def login():
|
||||
if request.method == 'GET':
|
||||
return render_template('login.html')
|
||||
else:
|
||||
userlevel = request.form.get('userlevel')
|
||||
res = query_db(f"select * from users where userlevel='{userlevel}'")
|
||||
if res:
|
||||
userid = res[0]
|
||||
userlevel = res[2]
|
||||
print(userid, userlevel)
|
||||
if userid == 'admin' and userlevel == 0:
|
||||
return f'hello {userid} flag is {FLAG}'
|
||||
return f'<script>alert("hello {userid}");history.go(-1);</script>'
|
||||
return '<script>alert("wrong");history.go(-1);</script>'
|
||||
|
||||
app.run(host='0.0.0.0', port=8000)
|
||||
Reference in New Issue
Block a user