brunch

You can make anything
by writing

C.S.Lewis

by 댕챱 Aug 14. 2023

최대 공약수 문제를 풀어보았다

당당하게 틀렸다. 하지만 이제는 명확하게 알았다.

정승제 생선님의 유튜브 영상들을 보다가, '아는형님'예능에 일타강사 특집으로 나와 최대 공약수 개념에 대해 짧게 수업하는 영상을 보고, 어린시절이 생각나 다시 도전해봤다.


이건 딱히 누구에게 어떤 도움이 되어서 쓴 글이라기보다, 그냥 여기까지 혼자 생각해서 와 본 나 자신이 약간은 기특하기도 하고, 순간 내 자신이 맞은 줄 알았으나 결국엔 핵심중 하나를 놓쳐 아깝게 틀려버린 스스로가 너무 재밌어서 써봤다. 그리고 개인적으로 문제에 명시된 문장들이, 나같이 수학에 약한 사람들에게 혼란을 줄수 있다고 생각한 부분까지, 모두의 명확한 이해를 도우려면 어떻게 작성되었어야 하는지도 한번 심심해서 적어보고자 한다.


(용어에 대해서는 약간 자신이 없긴 한데... 혹시 잘못된게 있다면 누군가 짚어주면 좋을것 같다)




그리고 문제를 풀기에 앞서, 영상에서 소개된 개념은 다음과 같다(약간 내 언어로 rephrasing 된 측면은 있다)


소수 어떤 숫자를 곱셈식으로 쪼개고자 했을 때, 자기자신과 1 외에는 도저히 더 쪼개지지 않는 숫자

약수 A라는 숫자를 쪼갰을 때 나올 수 있는 모든 숫자. 즉, A라는 숫자를 만들기 위해 곱셈에 쓰이는 다양한 크기의 숫자들(이건 자기자신인 A와 1도 포함한다.)

인수분해 A라는 숫자에서, 약수를 찾기 위해 곱셈식의 형태로 바꾸는 것.(간결한 걸 장황하게 늘어놓는 과정) 하지만 그 식에 소수만 있어야 하는 것은 아니다. 어쨌든 분해되었으면, 된거다.

소인수분해 그 A라는 그 숫자를 곱셈식으로 쪼갤 때, 정말 지구끝까지 쪼개고 쪼개서 각 곱셈 기호 사이에 위치한 숫자들이 소수만 존재할 때까지 쪼개는 것

공약수 A라는 숫자와 B라는 숫자에서 공통적으로 발견되는 약수

최대공약수 A라는 숫자와 B라는 숫자가 공통으로 가진 약수들 중, 가장 큰 약수


[문제]

개당 1,500원인 백설기 30개, 개당 1,000원인 한과 45개, 그리고 개당 500원인 경단 75개를 남김없이 최대한 많은 상자에 나눠 담아 판매하려고 한다. 이 때 떡 1상자의 가격을 얼마로 하면 될까?


[나의 풀이]

몇번의 생각 끝에, 출제자가 하고자 하는 것이 정확히 무엇인지 겨우 해석해낼 수 있었다.

일단 이 문제에서 지켜져야 하는 조건은:

a. 최대한 많은 상자를 만들 수 있어야 하고

b. 음식은 1인분씩 온전히 담겨야 하며

c. 잔여음식이 남으면 안되고 모든 박스에 무조건 3종류의 음식이 고루 들어가있어야 한다.


이러려면, 조건 c를 일단은 충족하기 위해서 공약수부터 구해야 한다.

그래서 각각

30 = 2*3*5

45 = 3*3*5

75 = 3*5*5

이렇게 각 개수를 먼저 소인수분해했고, 그 다음 그 소수중에 가장 큰 5가 박스의 개수라고 착각하고

한 상자에 각각

백설기 6개,

한과 9개,

경단 15개씩 총 5상자를 만들어 팔면 될거라고 생각하고 각각의 개수에 개당 가격을 곱해

25,500원이라는 가격을 책정했다.


[정답과 내가 놓친 부분]

결과는 틀렸고, 정답은 8,500원이었다.

일단 소인수 중에서는 5가 가장 큰것이 맞는데, 나의 착오는 약수중 가장 큰것을 본게 아니라 소인수 중 가장 큰것을 골랐다는데 있다.


일단, 주어진 조건을 하나씩 충족시켜가는 식으로 문제를 제대로 풀어보자.


a. 최대한 많은 상자를 만들어야 한다.

이것 하나만 충족하기는 정말 쉽다. 그냥 상자의 개수만 많이 만들어 파는 것이 목적이었다면, 경단, 백설기, 한과 모두 1인분을 더 잘게 쪼개어, 더 많은 상자에 나눠담으면 된다. 이 경우의 수는 손톱만하게 쪼개는 것부터 시작해 개미만한 사이즈까지, 굉장히 다양한 크기로 쪼갤 수 있다.


b. 상자 안에 음식을 담을 때는 1인분이 온전히 담겨야 한다.

이 조건까지 충족시키려면, 절대 1인분을 쪼개해서는 안된다. 그렇다면, 경단과 백설기, 한과 3종류의 음식이 1인분씩 온전히 담겨있으면서 가짓수가 가장 많은 케이스를 생각해보면 경단이 제일 많으니, 경단 개수에 맞춰 박스를 만들고, 백설기와 한과는 각각 30개, 45개의 박스에 들어가 있으면 된다.


c. 그 어떤 음식종류도 남아도는게 있으면 안되고, 각 상자들에 모든 3종류가 골고루 담겨야만 한다.

c 조건까지 충족하고자 한다면, 방금 전에 말한 방식으로는 문제를 해결할 수 없다. 그럴 경우, 남아도는 나머지 30개의 상자를 빼면 경단은 45개, 그리고 한과는 15개가 남아돌기 때문이다. 그럼 이제, 한박스에 골고루 넣기 위해, 먼저 각 개수의 약수를 보고, 그 중에서도 공약수를 살펴봐야 한다.


(백설기, 한과, 경단의 약수들)

백설기 30개 = 1,2,3,5,6,15,30

한과 45개 = 1,3,5,9,15,45

경단 75개 = 1,3,5,15,25,75


여기서 살펴보면, 각 개수별로 다양한 약수를 가지고 있으며, 그 중 공통되는 약수가 무엇무엇인지 알 수 있다. 찾아보면 1,3,5,15가 있는 것을 볼수 있는데, 이 때 우리는 조건 a를 잊으면 안된다.

"최대한 많은 상자를 만들어내고 싶다"

물론 상자를 5개나, 3개로 만들어 팔수도 있다. 하지만 그건 가장 많은 상자의 개수는 아니다. 각 3종류의 음식의의 1인분이 고스란히 담길 수 있으면서, 동시에 선택가능한 가장 많은 상자의 개수는 15가 유일하기에, 우선 박스의 개수는 총 15개여야 하며, 각 음식의 개수에 15를 나눠 나오는 값, 즉 상자 1개에 담겨야 하는 각 음식종류별 1인분의 개수를 위 공약수에서 찾은 뒤 거기에 각각 음식별 가격을 곱하고, 그렇게 나온 가격을 모두 합하기만 하면 상자당 얼마에 팔아야 하는지 계산이 된다.

그리고 그렇게 나온 답은 총 8,500원이 되는 것이다.


[그럼 문제가 더 쉽게 와닿았으려면..?]

문제가 더 쉽게 와닿았으려면, 아마 다음과 같이 문장이 재구성되면 더 좋았지 않았을까 싶다.

(사실 중간에 명시한 조건 a,b,c 중에 주어진 문장만으로는 b에 대한 조건이 명확히 되어있지 않아 오히려 아예 출제의도에 벗어난 방향으로 쉽게 벗어날 수 있어서, 나름의 언어로 다시한번 정리해보았다.)


개당 1,500원인 백설기 30개, 개당 1,000원인 한과 45개, 그리고 개당 500원인 경단 75개가 있다.

이 3가지 음식들을 각 상자에 1인분씩 골고루 담기면서 최대한 많은 상자에 나눠 담아 판매하려면, 떡 1상자의 가격을 얼마로 하면 될까?






에필로그.


그래.... 아무리 물가가 올랐어도 떡쪼가리 몇개 모아서 파는게 너무 허황되게 비싸다 했어...^_^

작가의 이전글 프로덕트 디자이너가 되고 싶다면
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari