SlideShare a Scribd company logo
1 of 6
Minimum Inconmensurable
Weight
Steve Paks
Curriculum Model

A

A

A

A

A

CS

Here I am
A

A

A

CS
A
Java Language Base

CS : Computer
Science
A : Application
Minimum Inconmensurable
Weight
•

•
•

•

무게가 양의 정수인 N개의 저울추가 주어질 때, 이 추들을 사용하여 측정할 수 없는 양
의 정수 무게 중 최소값을 구하는 프로그램을 작성하시오.
예를 들어, 무게가 각각 3, 1, 6, 2, 7, 30, 1인 7개의 저울추가 주어졌을 때, 이 추들로
측정할 수 없는 양의 정수 무게 중 최소값은 21이다.
Input
입력 파일의 이름은 INPUT.TXT이다. 첫 째 줄에는 저울추의 개수를 나타내는 양의 정
수 N이 주어진다. N은 1 이상 1,000 이하이다. 둘째 줄에는 저울추의 무게를 나타내는
N개의 양의 정수가 빈칸을 사이에 두고 주어진다. 각 추의 무게는 1이상 1,000,000 이
하이다.
Output
출력 파일의 이름은 OUTPUT.TXT이다. 첫째 줄에 주어진 추들로 측정할 수 없는 양의
정수 무게 중 최소값을 출력한다.
Algorithm
•

Input

7
3 1 6 2 7 30 1

Max = 30+7+6+3+2+1+1 = 50

Min = 1

Min = 2

Min = 3

Min = 4

30 7 6 3 2 1 1

30 7 6 3 2 1 1

30 7 6 3 2 1 1

30 7 6 3 2 1 1

30 7 6 3 2 1 1
…

30 7 6 3 2 1 1
…

30 7 6 3 2 1 1
…

30 7 6 3 2 1 1
…

30 7 6 3 2 1 1

30 7 6 3 2 1 1

30 7 6 3 2 1 1

30 7 6 3 2 1 1

30 7 6 3 2 1 1

30 7 6 3 2 1 1

30 7 6 3 2 1 1

30 7 6 3 2 1 1
Algorithm(Cont’d)
Min = 5

Min = 6

Min = 7

Min = 8

30 7 6 3 2 1 1

30 7 6 3 2 1 1

30 7 6 3 2 1 1

30 7 6 3 2 1 1

30 7 6 3 2 1 1
…

30 7 6 3 2 1 1
…

30 7 6 3 2 1 1
…

30 7 6 3 2 1 1
…

30 7 6 3 2 1 1

30 7 6 3 2 1 1

30 7 6 3 2 1 1

30 7 6 3 2 1 1

30 7 6 3 2 1 1

30 7 6 3 2 1 1

Min = 9
30 7 6 3 2 1 1

30 7 6 3 2 1 1

30 7 6 3 2 1 1

30 7 6 3 2 1 1

…

Min = 21

30 7 6 3 2 1 1

30 7 6 3 2 1 1

30 7 6 3 2 1 1

30 7 6 3 2 1 1

Min = 10

7+6+3+2+1+1 = 20

<

30 7 6 3 2 1 1

30 7 6 3 2 1 1
30 7 6 3 2 1 1
30 7 6 3 2 1 1
30 7 6 3 2 1 1
30 7 6 3 2 1 1

∴ Min = 21
Core Methods
•

sort()
–

•

추들을 내림차순으로 정렬

getMin()
–
–
–
–
–
–
–

측정 가능한 무게(A)를 1씩 증가시킴
가장 무거운 추부터 올려 보고
(A)의 무게보다 무거우면 내리고 더 가벼운 것을 올림
(A)보다 가벼우면 일단 올려 놓고
다음 가벼운 추를 올림
그리고 무게를 초과하면 가장 가벼운 추까지 올리거나 내리는 동작을 반복
가장 마지막 추를 올렸을 때 (A)의 무게와 맞지 않으면 측정 불가능한 무게로 정함

More Related Content

Viewers also liked

Viewers also liked (17)

Dynamically linked queues
Dynamically linked queuesDynamically linked queues
Dynamically linked queues
 
Good numbers
Good numbersGood numbers
Good numbers
 
Maze
MazeMaze
Maze
 
Hemilton cycle circuit
Hemilton cycle circuitHemilton cycle circuit
Hemilton cycle circuit
 
HEEC2015
HEEC2015HEEC2015
HEEC2015
 
Evaluation expression
Evaluation expressionEvaluation expression
Evaluation expression
 
Polynomials
PolynomialsPolynomials
Polynomials
 
FIGURAS GEOMETRICAS
FIGURAS GEOMETRICASFIGURAS GEOMETRICAS
FIGURAS GEOMETRICAS
 
Dynamically linked stacks
Dynamically linked stacksDynamically linked stacks
Dynamically linked stacks
 
Education systems in Europe
Education systems in EuropeEducation systems in Europe
Education systems in Europe
 
Sdoku
SdokuSdoku
Sdoku
 
N queen
N queenN queen
N queen
 
Singly linked lists
Singly linked listsSingly linked lists
Singly linked lists
 
Norway
NorwayNorway
Norway
 
Introduction au développement chimique pharmaceutique
Introduction au développement chimique pharmaceutiqueIntroduction au développement chimique pharmaceutique
Introduction au développement chimique pharmaceutique
 
Sparse matrices
Sparse matricesSparse matrices
Sparse matrices
 
Garden for princess
Garden for princessGarden for princess
Garden for princess
 

Min inconmensurable weight

  • 2. Curriculum Model A A A A A CS Here I am A A A CS A Java Language Base CS : Computer Science A : Application
  • 3. Minimum Inconmensurable Weight • • • • 무게가 양의 정수인 N개의 저울추가 주어질 때, 이 추들을 사용하여 측정할 수 없는 양 의 정수 무게 중 최소값을 구하는 프로그램을 작성하시오. 예를 들어, 무게가 각각 3, 1, 6, 2, 7, 30, 1인 7개의 저울추가 주어졌을 때, 이 추들로 측정할 수 없는 양의 정수 무게 중 최소값은 21이다. Input 입력 파일의 이름은 INPUT.TXT이다. 첫 째 줄에는 저울추의 개수를 나타내는 양의 정 수 N이 주어진다. N은 1 이상 1,000 이하이다. 둘째 줄에는 저울추의 무게를 나타내는 N개의 양의 정수가 빈칸을 사이에 두고 주어진다. 각 추의 무게는 1이상 1,000,000 이 하이다. Output 출력 파일의 이름은 OUTPUT.TXT이다. 첫째 줄에 주어진 추들로 측정할 수 없는 양의 정수 무게 중 최소값을 출력한다.
  • 4. Algorithm • Input 7 3 1 6 2 7 30 1 Max = 30+7+6+3+2+1+1 = 50 Min = 1 Min = 2 Min = 3 Min = 4 30 7 6 3 2 1 1 30 7 6 3 2 1 1 30 7 6 3 2 1 1 30 7 6 3 2 1 1 30 7 6 3 2 1 1 … 30 7 6 3 2 1 1 … 30 7 6 3 2 1 1 … 30 7 6 3 2 1 1 … 30 7 6 3 2 1 1 30 7 6 3 2 1 1 30 7 6 3 2 1 1 30 7 6 3 2 1 1 30 7 6 3 2 1 1 30 7 6 3 2 1 1 30 7 6 3 2 1 1 30 7 6 3 2 1 1
  • 5. Algorithm(Cont’d) Min = 5 Min = 6 Min = 7 Min = 8 30 7 6 3 2 1 1 30 7 6 3 2 1 1 30 7 6 3 2 1 1 30 7 6 3 2 1 1 30 7 6 3 2 1 1 … 30 7 6 3 2 1 1 … 30 7 6 3 2 1 1 … 30 7 6 3 2 1 1 … 30 7 6 3 2 1 1 30 7 6 3 2 1 1 30 7 6 3 2 1 1 30 7 6 3 2 1 1 30 7 6 3 2 1 1 30 7 6 3 2 1 1 Min = 9 30 7 6 3 2 1 1 30 7 6 3 2 1 1 30 7 6 3 2 1 1 30 7 6 3 2 1 1 … Min = 21 30 7 6 3 2 1 1 30 7 6 3 2 1 1 30 7 6 3 2 1 1 30 7 6 3 2 1 1 Min = 10 7+6+3+2+1+1 = 20 < 30 7 6 3 2 1 1 30 7 6 3 2 1 1 30 7 6 3 2 1 1 30 7 6 3 2 1 1 30 7 6 3 2 1 1 30 7 6 3 2 1 1 ∴ Min = 21
  • 6. Core Methods • sort() – • 추들을 내림차순으로 정렬 getMin() – – – – – – – 측정 가능한 무게(A)를 1씩 증가시킴 가장 무거운 추부터 올려 보고 (A)의 무게보다 무거우면 내리고 더 가벼운 것을 올림 (A)보다 가벼우면 일단 올려 놓고 다음 가벼운 추를 올림 그리고 무게를 초과하면 가장 가벼운 추까지 올리거나 내리는 동작을 반복 가장 마지막 추를 올렸을 때 (A)의 무게와 맞지 않으면 측정 불가능한 무게로 정함