코드포스 알고리즘 3일차

Junghwan Kim·2023년 7월 29일

어느 주말 오후 어김없이 코딩챌린지 사이트인 Codeforces에서 문제를 풀었다. 확실히 풀이언어를 파이썬으로 바꾸고나니까 여러모로 너무나도 편했다. 이것이 파이썬인가.. 갓이썬 황이썬 파이썬.. 이제까지 풀어봤던 문제들의 코드를 공유해볼까 한다. 유독 파이썬에선 이런문제들을 풀때 요런 문법들이 자주 사용되곤 하였다.

자주 사용되는 문법 
list(map(int, input().split()))
bisect.bisect_right(c, v) + 1
int(_) for _ in input().split()

처음에는 너무나도 생소하여 적응하는 기간을 어느정도 가져야 될듯하다 흐으음 이해를 하고 그러한 원리들을 응용하여 내것으로 만들어서 코드를 짜내본다면 성공적인 알고리즘 공부가 되지않을까 내심 기대를 해본다.

706B 
n = int(input())

prices = [int(_) for _ in input().split()]

prices.sort()

q = int(input())

def bs(query):

    l = 0
    r = n-1

    while l<=r:

        m = (l+r)//2

        if prices[m] > query:
            r = m-1
        else:
            l = m+1
        
    return l

for _ in range(q):

    print(bs(int(input())))


279B
n,t=map(int,input().split())
l=list(map(int,input().split()))


s=0
c=0
j=0
    
for i in range(n):
    s=s+l[i]
    if s<=t:
        c+=1
    else:
        s=s-l[j]
        j+=1
    #print(i,j,s)
print(c)



 474B
import bisect
n = int(input())
a = list(map(int, input().split()))
m = int(input())
q = list(map(int, input().split()))
p = 0
c = [0] * n
for i, v in enumerate(a):
    p += v
    c[i] = p
for v in q:
    v -= 1
    print(bisect.bisect_right(c, v) + 1)
profile
안녕하세요~

1개의 댓글

comment-user-thumbnail
2023년 7월 29일

좋은 글이네요. 공유해주셔서 감사합니다.

답글 달기