Upload files to "백준"

This commit is contained in:
2026-04-11 11:57:53 +09:00
parent 6b481b4784
commit 82dea348a6
4 changed files with 172 additions and 0 deletions

41
백준/30805.py Normal file
View 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
View 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
View 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
View 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)