본문 바로가기
알고리즘/백준

[백준]230117 문제풀이

by stubborngastropod 2023. 1. 17.
728x90

4796. 캠핑

testcase = 0

while True:
    testcase += 1
    l, p, v = map(int, input().split())
    if l+p+v == 0:
        break
    if v%p < l:
        using_day = (v//p)*l + v%p
    elif v%p >= l:
        using_day = (v//p)*l + l
    print(f'Case {testcase}: {using_day}')

v%p와 l의 대소관계를 고려하지 않아 계속 틀린 문제

알고리즘을 제대로 생각하고 풀기 시작해야겠다.

 

11047. 동전 0

N, K = map(int, input().split())
coinlist = []
coinnum = 0

for i in range(N):
    coinlist.append(int(input()))

coinlist.sort(reverse = True)

for i in coinlist:
    if i > K:
        pass
    else:
        coinnum += K // i
        K = K % i

print(coinnum)

어릴 때 많이 풀어서 익숙하다. sort(reverse = True)를 잘 활용하자

 

17509. And the Winner Is... Ourselves!

T = []
V = []
totalT = 0
tlist = []

for i in range(11):
    a, b = map(int, input().split())
    T.append(a)
    V.append(b)

T.sort()

for i in T:
    tlist.append(totalT + i)
    totalT += i

print(sum(tlist) + 20*sum(V))

영어 문젠데, 문제를 제대로 이해하기 힘들었다.

totalT += totalT + i 형식으로 시간의 합을 구하려 했으나 계속된 오답으로 그냥 하나씩 append하는 식으로 바꿨다.

 

1931. 회의실 배정

#1차 제출
N = int(input())
meetings = []
meetingnum = 0
numlist = []

for i in range(N):
    m = list(map(int, input().split()))
    meetings.append(m)

meetings.sort()

for i in meetings:
    numlist.append(meetingnum)
    meetingnum = 1
    endtime = i[1]
    for j in range(N):
        if meetings[j][0] >= endtime:
            meetingnum += 1
            endtime = meetings[j][1]

print(max(numlist))

원래 2중for문을 이용해 해결하려고 했으나 시간 초과로 다른 방법 찾기..

#2차 제출
N = int(input())
meetings = []
meetingnum = 1

for i in range(N):
    m = list(map(int, input().split()))
    meetings.append(m)

meetings.sort(key = lambda x: (x[1], x[0]))

endtime = meetings[0][1]

for i in range(1, N):
    if meetings[i][0] >= endtime:
        meetingnum += 1
        endtime = meetings[i][1]

print(meetingnum)

가장 빠른 회의 종료시간을 찾아가는 식으로 해결했다. 2차원 배열 구조에서 빛을 발한 lambda... 정확한 원리를 이해할 필요가 있을 것 같다.

 

그리디는 약간의 타고난 직관이 있으면 정말 편할듯...

728x90

'알고리즘 > 백준' 카테고리의 다른 글

[백준]230124 문제풀이  (0) 2023.01.24
[백준]230121 문제풀이  (2) 2023.01.21
[백준]230119 문제풀이  (0) 2023.01.20
[백준]230118 문제풀이  (0) 2023.01.18
[백준]230116 문제풀이  (0) 2023.01.16

댓글