-- select Name from STUDENTS where Marks > 75
-- order by Name
-- select regexp_substr(Name, '\\w{3}$') from STUDENTS
-- tha
-- lia
-- ney
-- select Name from STUDENTS
-- Samantha
-- Julia
-- Britney
-- select regexp_substr(Name, '\\w{3}$') from STUDENTS where Marks > 75
-- select regexp_substr(Name, '\\w{3}$') from STUDENTS where Marks > 75 order by 1, ID
select Name from STUDENTS where Marks > 75 order by regexp_substr(Name, '\\w{3}$'), ID
백준 1927번 문제: 최소 힙
https://www.acmicpc.net/problem/1927
import heapq
list_ = []
# list_.heapify()
N = int(input())
# for _ in range(N):
# N번 하는 게 아니야!
while 1:
x = int(input())
if x > 0:
list_.heappush(x)
# AttributeError: 'list' object has no attribute 'heappush'
else:
try:
print(list_[-1:-1:-1])
# IndexError: list index out of range
list_.remove(min(list_))
except ValueError: # 배열이 비어있는데 가장 작은 값을 출력할 경우 0 출력
print("0")
맨땅에서 풀다가 pop, remove 등에서 indexerror에 이질이 나서 검색을 했다.
heapq라는 모듈이 있다.
그런데 사용할 수가 없었다.
vscode에서 import heapq의 heapq만 회색이고, not accessed라는 설명이 나왔다.
아무리 검색을 해도 개선할 수가 없었다.
오히려 pip에서 잘못됐나 싶어서 오류만 무진장 팠다.
pytest를 돌렸다가, venv를 설치했다가 지우고 내장인 것 같지만 install해보고,
pip install --upgrade pip했다가 액세스가 거부되고,
업그레이드 하라는 거 복사해서 붙여도 bash오류나오고
검색해서 영어설명 다 읽어봐도 지쳐서 너무 힘들었따.
-> 근데 알고보니 사용법이 틀렸었다. ^^
heapq.heappush(list_, x)처럼 써야하고,
그러면 신기하게도 import도 색이 진해졌다.
아마도 함수에서의 argument처럼 색이 바랬다가 진해지는 모양과 비슷한 것 같다.
a = [2]
b = [3]
print(a + b)
# [2, 3]
a += b
print(a)
# [2, 3]
a[0]+=b[0]
print(a)
# [5]
위부터 순서대로
1. 리스트간의 합연산
2. 리스트간의 합연산
3. 정수간의 합연산
어제 튜터님의 풀이에 등장한 건 2번!
N, M = map(int, input().split())
matrix_a = []
matrix_b = []
for _ in range(N):
row = list(map(int, input().split()))
matrix_a.append(row)
for _ in range(N):
row = list(map(int, input().split()))
matrix_b.append(row)
for i in range(N):
for j in range(M):
matrix_a[i][j] += matrix_b[i][j]
# print(matrix_a)
# [[4, 4, 4], [6, 6, 6], [5, 6, 100]]
for i in range(N):
matrix_a[i] = " ".join(str(x) for x in matrix_a[i])
for i in range(N):
print(f"{matrix_a[i]}")
# 4 4 4
# 6 6 6
# 5 6 100
for문을 5번
아니 6번
^^
처음 두 번은 값을 받는데 사용했다.
다음은 연산하는 데 nn
그리고 출력 준비에 한 번, 출력에 한 번 ^^
풀고나서 다른 사람들의 답안이 너무너무너무 보고싶었다.
한 분은 값을 받는 것 까지는 같았다.
답안에 for/for를 쓰고 print()안에서 연산을 하고(print(3+2)느낌)
end의 개행을 없애고 print()를 첫 for문에서 돌렸다.
하히하ㅏㅎ히하하ㅣ하히
import heapq, sys
list_ = []
N = int(sys.stdin.readline())
for _ in range(N):
x = int(sys.stdin.readline())
if x > 0:
heapq.heappush(list_, x)
elif list_ and x == 0:
sys.stdout.write(f"{heapq.heappop(list_)}\n")
else: # list_가 비어있을 경우
sys.stdout.write(f"0")
# 9
# 0
# 12345678
# 1
# 2
# 0
# 01
# 0
# 2
# 0
# 12345678
# 0
# 32
# 0
# 틀렸습니다.
import heapq, sys
list_ = []
N = int(sys.stdin.readline())
for _ in range(N):
x = int(sys.stdin.readline())
if x > 0:
heapq.heappush(list_, x)
elif list_ and x == 0:
print(heapq.heappop(list_))
else: # list_가 비어있을 경우
print(0)
# 9
# 0
# 0
# 12345678
# 1
# 2
# 0
# 1
# 0
# 2
# 0
# 12345678
# 0
# 0
# 32
# 맞았습니다!!
# ?????????????????????????????????????????????????????????????????????//