정화 코딩

EDOC 2023-2 3회차 정모 본문

Group/EDOC

EDOC 2023-2 3회차 정모

jungh150c 2023. 10. 2. 22:28

A. 슈퍼 마리오 (백준 2851번)

 

https://www.acmicpc.net/group/practice/view/18074/5

 

#python

from sys import stdin

sum = 0
mush = []
mushSum = [0]

for i in range(0, 10):
    mush.append(int(stdin.readline()))
    sum += mush[i]
    mushSum.append(sum)

for i in range(1, 11):
    if mushSum[i] >= 100:
        if (mushSum[i] - 100) <= (100 - mushSum[i-1]):
            print(mushSum[i])
            break
        else:
            print(mushSum[i-1])
            break
    else:
        if i == 10:
            print(mushSum[i])

 

처음에는 마지막 else문을 안 써서 틀렸다. 합이 100이 넘는 경우가 무조건 생긴다는 보장이 없으니 저 else문이 필요하다. 좀 더 구체적으로 말하면 기존의 코드는 1이 10개 들어오면 아무것도 출력을 안 했다. 실제로는 10을 출력해야 한다. 아무튼 수정해서 맞았다. (정답)

이전에 C언어로 풀었던 문제인데, 그 때도 같은 이유로 코드가 이상했다... 근데 어떻게 백준에서는 "맞았습니다"가 나온걸까..??? 아주 미스테리...

 


 

B. 먹을 것인가 먹힐 것인가 (백준 7795번)

 

https://www.acmicpc.net/problem/7795

 

#python

from sys import stdin

t = int(stdin.readline())

for _ in range(t):
    n, m = map(int, stdin.readline().split())
    A = list(map(int, stdin.readline().split()))
    B = list(map(int, stdin.readline().split()))
    count = 0

    A.sort()
    B.sort()

    j = 0
    for i in range(n):
        if j == m:
            j -= 1
        while B[j] < A[i]:
            j += 1
            if j >= m:
                break
        count += j

    print(count)

 

투 포인터를 사용해서 풀었다. 아마도... (정답)

 


 

C. 게으른 백곰 (백준 10025번)

 

https://www.acmicpc.net/problem/10025

 

(미해결)

 

'Group > EDOC' 카테고리의 다른 글

EDOC 2023-2 4회차 정모  (0) 2023.10.09
EDOC 2023-2 3주차 과제  (0) 2023.10.07
EDOC 2023-2 2주차 과제  (0) 2023.09.26
EDOC 2023-2 2회차 정모  (0) 2023.09.26
EDOC 2023-2 1주차 과제  (0) 2023.09.20
Comments