코테 스터디

백준 문제풀이 1094번, 1049번, 1021번 (파이썬)

채영sw 2024. 2. 10. 22:10

1. 

 

1094번: 막대기

지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대

www.acmicpc.net

s=64
count = 0
x= int(input())
while s!=0:
    if x<s:
        s = s/2
    else:
        x = x-s
        count+=1
    if x==0:
        break
print(count)

 

2.

 

1049번: 기타줄

첫째 줄에 N과 M이 주어진다. N은 100보다 작거나 같은 자연수이고, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 각 브랜드의 패키지 가격과 낱개의 가격이 공백으로 구분하여 주

www.acmicpc.net

n, m = map(int, input().split())
set=[]
single=[]
price = 0 

for i in range(m):
    q,w = map(int, input().split())
    set.append(q)
    single.append(w)

set=min(set)
single=min(single)

if set < single *6:
    price += set * (n//6)
    if (n%6)*single > set:
        price += set
    else:
        price += (n%6)*single
else:
    price += single * n

print(price)

 

3.

 

1021번: 회전하는 큐

첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가

www.acmicpc.net

n,m = map(int, input().split())
q=[]
count = 0

for i in range(1, n+1):
    q.append(i)

choice = list(map(int, input().split()))

for i in choice:
    while 1:
        if q[0] == i:
            q.pop(0)
            break
        else:
            if (len(q)/2) > q.index(i):
                while q[0] != i:
                    a = q.pop(0)
                    q.append(a)
                    count += 1
            else:
                while q[0] != i:
                    a = q.pop(-1)
                    q.insert(0, a)
                    count += 1

print(count)

'코테 스터디' 카테고리의 다른 글

백준 문제풀이 1065번, 1072번, 1015번 (파이썬)  (0) 2024.02.18