강의자료/알고리즘 수학 44

[알고리즘 수학] 가짜동전과 진짜 동전 구별하기

가끔 이러한 뉴스를 확인 할 수 있는데요~ 오늘은 가짜동전 진짜 동전에 대한 퀴즈를 풀어 보도록 하겠습니다. 원당이 친구가 원당이에게 동전 100개씩 들어 있는 동전꾸러미 10개를 들고 와서는 원당이에게 다음과 같이 물어 보았습니다. "이 동전은 모양과 크기가 모두 같은데 한 꾸러미 안에 있는 동전은 가짜야~" "진짜 동전의 무게는 10g 이고 가짜의 무게는 9g 인데 이것을 한번에 판단하는 방법이 있을까?" 원당이에게는 동전의 무게를 정확하게 잴 수 있는 저울이 있습니다. 이 저울을 이용하여 한번에 진짜동전과 가짜 동전을 구별해 낼 수 있을 까요? 풀이 더보기 한번에 찾을 수 있습니다. 10개 꾸러미에 1 부터 10까지 번호를 먼저 매겨 놓습니다. 그리고 나서 1번 꾸러미에서 동전 1개,2번 꾸러미에서..

[알고리즘 수학]강건너기 문제

어떤 사람이 늑대 한마리, 염소 한마리, 양배추 한통을 가지고 강둑에 서 있다. 이 셋을 모두 배로 반대편으로 옮겨야 한다. 하지만 배에는 이 사람 외에는 하나만 실을 수 있다. 그 가 없으면 늑대는 염소를 먹어 버리고 염소는 양배추를 먹어 버린다. 여기서 퀴즈 늑대가 염소를 잡아먹지 못하고 또 염소가 양배추를 먹지 못하게 하면서 모두를 건너편 강가로 데려 갈 수 있을까? 힌트 사소한 예외 하나를 빼면 이 퀴즈는 각 상황에서 옮길 수 있는 유일한 것을 열거하는 방식을 풀 수 있다. 정답 더보기 풀이1) 1. 염소를 데리고 강을 건넌다.(염소/늑대,양배추) 2. 염소를 내려 놓고 다시 건너와서 늑대를 데리고 강을 건넌다. 3. 늑대를 내려 놓고 염소를 데리고 다시 건너온다.(늑대/염소,양배추) 4. 양배추..

[컴퓨팅사고력] DNA 조작 횟수를 최소로 만들어 보자

DNA의 염기서열은 adenine(A),thymine(T),guanine(G),cytosine(C) 와 같이 네가지로 구성되어 있습니다. DNA 염기서열을 연구하고 있는 원당이는 고릴라의 염기서열이 GATACCAGATACCCA 와 같이 이루어져 있고 원숭이의 염기서열이 AAGATTGCCATTATT 와 같이 이루어져 있는 것을 발견했습니다. 원당이는 고릴라와 원숭이의 염기서열을 똑같이 만들어 보고 싶습니다. 가령 GATA 의 염기서열을 AAGT 로 만든다면 GATA에서 3개를 변경해서 만들 수 있습니다. 혹은 AA 와 같이 만든다면 G와 T 두개의 염기서열을 삭제해서 만들 수 있습니다. 또는 GATAT 와 같은 경우는 T를 추가해서 염기서열을 만들 수가 있습니다. 이렇게 변경하거나 추가하거나 삭제하는 세가..

[컴퓨팅사고력] 지워진 ISBN 번호를 찾아 보자.

원당이는 한빛도서에서 책을 하나 구매했는데 홈페이지에 ISBN 코드를 인증 받으면 포인트를 준다고 합니다. 그런데 어린 동생이 ISBN의 가장 마지막 자리를 사인펜으로 낙서를 해 놓는 것 때문에 ISBN 코드로 인증을 받지 못하게 되었는데 인터넷으로 ISBN 에 대해 검색을 하니 ISBN 에 대해 다음과 같이 설명이 되어 있습니다. ISBN(International Standard Book Number)는 국제적으로 책에 붙이는 고유한 식별자이다. ISBN체계는 원래 1966년 영국에서 "표준 도서 번호"(SBN)라는 이름으로 만들어졌고, 1970년 국제 표준화 기구에 의해 ISO 2108이라는 표준으로 채택되었다. 본래 ISBN은 10자리였지만 2007년 1월 1일 이후부터는 유럽상품번호(EAN)에 맞..

[컴퓨팅사고력] 염기서열의 공통 부분 서열을 찾아 보자.

원당이는 생명공학의 DNA 에 대해 연구 하고 있습니다. DNA의 염기서열은 adenine(A),thymine(T),guanine(G),cytosine(C) 와 같이 네가지로 구성되어 있습니다. 고릴라의 염기서열을 분석해 보니 GATACCAGATACCCA 와 같이 이루어져 있고 원숭이의 염기서열을 분석해 보니 AAGATTGCCATTATT 와 같이 이루어져 있는 것을 발견했습니다. 원당이는 이 두개의 염기서열에서 공통부분 서열 중에 최대로 긴 부분 서열을 구하고 싶습니다. 여기서 부분서열이란 원래 문자열에서 임의적으로 몇개의 문자를 제거하여 순서에 맞춰 빈칸 없이 합쳤을 때 만들 수 있는 문자열을 말합니다. 즉 ATGC 와 ATCT 의 가장긴 부분수열은 ATC 3개 입니다. ATGC 에서 G를 제거 하고 ..

[컴퓨팅사고력] 약수물을 뜨는 시간을 최소화 해보자

원당이가 사는 원당동 금정산에는 약수터가 있습니다. 약수터의 물은 1초에 1리터씩을 담을 수 있습니다. 원당이가 약수터에 올라가 보니 사람들이 약수통을 들고 가장 최소한의 시간을 대기해서 물을 받으려면 어떤 순서대로 받는것이 가장 좋을지 논의 하고 있었습니다. 지금 약수터에 물을 받고 싶어하는 사람은 네명이며 첫번째 사람은 3리터, 두번째 사람은 5리터, 세번째 사람은 2리터, 네번째 사람은 1리터 들이 물통을 가지고 있습니다. 이때 첫번째,두번째,세번째,네번째 순으로 물을 받는다면 대기한 시간은 첫번째 사람은 자신의 물을 받는 시간 3초 + 두번째 사람은 3초 대기후 자신의 물을 받는 시간 5초 이므로 8초 + 세번째 사람은 8초 대기후 자신의 물을 받는 시간 2초 이므로 10초 + 네번째 사람은 10..

[컴퓨팅사고력] 이집트 분수

이집트 분수(Egyptian fraction)는 다음과 같은 별개의 단위분수의 유한개의 합의 형태를 가리킵니다. 예를 들어 5/7 을 이집트 분수로 표현하면 다음과 같이 표현합니다. 5/7 = 1/2 + 1/5 + 1/70 이러한 이집트 분수는 이집트에서 기원전부터 사용한 역사적인 사실 외에도 분수의 또 다른 표현에서 몇가지 실질적인 잇점이 있습니다. 예를 들어 이집트 분수는 많은 개체를 동일한 공유로 나누는데 도움을 줄 수가 있는데 8명이 식사를 하는데 5개의 피자를 똑같이 나누고 싶습니다. 이것을 이집트 분수로 표현하면 다음과 같이 됩니다. 5/8 = 1/2 + 1/8 이것은 피자 4개를 절반으로 나누어서 8명에게 1/2 씩 주고 나머지 한개를 8조각으로 나누어서 1/8로 나누어 줄 수 있다는 의미가..

[컴퓨팅사고력] 회의실을 최대 몇팀에게 배정을 해 줄 수 있을까요?

원당이 아빠는 회사에서 회의실을 관리하는 관리자 입니다. 아빠가 회사에서 회의실을 사용하겠다는 회의실 신청서를 가져 왔는데~ 신청 한 사람이 많아서 누군가의 신청서는 반려해야 합니다. 아빠는 최대한 많은 팀이 회의실을 사용하기를 원하고 최소의 팀에게 신청서를 반려 하고 싶습니다. 신청서가 다음과 같다면 몇팀을 배정하고 몇팀을 반려하는 것이 최선인지 찾아 주세요. 단 끝나는 시간에 딱 맞춰 다른 팀이 들어 갈 수 있다고 가정 합니다. 회의팀 시작시간 끝나는시간 1 3 5 2 1 4 3 2 13 4 5 9 5 5 7 6 1 6 7 8 11 8 8 12 9 12 14 문제풀이) 맨 처음 2번 팀을 배정 하면 4시에 끝납니다. 그 다음 5번 팀을 배정 하면 7시에 끝납니다. 그 다음 7번 팀을 배정 하면 11시..

[컴퓨팅사고력] 1.4kg을 채울 수 있는 가방에 최대 가치를 찾아 보자.

원당이는 동생과 같이 숨바꼭질을 하다가 창고에서 보물지도를 발견하였습니다. 원당이는 동생과 함께 자신의 가방을 가지고 보물찾기에 나섰습니다. 원당이의 가방은 최대 1400g을 채울 수 있는 가방입니다. 무게를 초과하면 가방의 끈이 떨어져서 가방을 사용 할 수 없게 됩니다. 이때 가방이 자유자재로 늘어나는 소재라서 부피는 관계가 없이 담을 수 있습니다. 보물이 있는 동굴에 들어서니 다음과 같은 보석들이 있습니다. 한덩어리가 200g 인 루비는 가치가 40만원입니다. 한덩어리가 500g 인 비취는 가치가 110만원입니다. 한덩어리가 1kg인 다이아몬드는 가치가 200만원입니다. 한덩어리가 300g 인 금은 가치가 50만원입니다. 위와 같은 보석들이 쌓여 있는데 원당이는 어떤 조합으로 가지고 나올때 최대가치는..

[컴퓨팅 사고력] 논에 물을 공급하기

다음 그림과 같이 강에서 부터 각 마을까지는 파이프로 연결이 되어 있는데 각 연결 되어 있는 파이프의 굵기가 서로 다릅니다. 위의 그림에서 각 숫자는 1시간에 밸브를 최대로 열었을때 흘려 보낼 수 있는 파이프의 용량입니다. 원당이는 가뭄에 대비하기 위해 강으로 부터 여러 마을을 거쳐 논까지 물을 공급할때 한시간에 최대로 보낼수 있는 물의 양을 알고 싶습니다. 여러분이 위의 그림을 보고 1시간에 흘려 보낼 수 있는 최대 양을 구해 주세요. 문제풀이) 더보기 먼저 강에서 A,B,C 마을에 각각 물을 흘려 보내 봅니다. 그 다음 A,B,C 마을에서 통로로 보낼 수 있는 양의 물을 흘려 보내 봅니다. E에서 논으로 750을 흘려 보내고 남은 10을 D로 흘려 보낸 후 D에서 논으로 340을 흘려 보낼 수 있습니..