-
Notifications
You must be signed in to change notification settings - Fork 111
Expand file tree
/
Copy pathSequenceConversionTwo.java
More file actions
67 lines (57 loc) · 2.19 KB
/
Copy pathSequenceConversionTwo.java
File metadata and controls
67 lines (57 loc) · 2.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package sequence_conversion_two;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class SequenceConversionTwo {
private static int listContainsNumberCount (ArrayList<Integer> list, int number) {
int count = 0;
for (int item: list) {
if (item == number) {
count++;
}
}
return count;
}
public static void main(String[] args) throws IOException {
ArrayList<Integer> inputNumbers = new ArrayList<>();
Scanner sc = new Scanner(new FileReader("input.txt"));
while (sc.hasNextLine()) {
String[] numbers = sc.nextLine().split(" ");
for (String number: numbers) {
inputNumbers.add(Integer.parseInt(number));
}
}
inputNumbers.remove(0);
ArrayList<Integer> maxCountNumbers = new ArrayList<>(); // числа с максимальным повторением
int maxCount = 0; // количество повторений числа
for (int number: inputNumbers) {
if (maxCountNumbers.size() == 0) {
maxCountNumbers.add(number);
maxCount++;
} else {
int countInputNumbers = listContainsNumberCount(inputNumbers, number); // кол-во в исходном массиве
if (maxCount < countInputNumbers) {
maxCountNumbers.clear();
maxCountNumbers.add(number);
maxCount = countInputNumbers;
} else if (maxCount == countInputNumbers && !maxCountNumbers.contains(number)) {
maxCountNumbers.add(number);
}
}
}
int minNumber = Collections.min(maxCountNumbers);
PrintWriter out = new PrintWriter(System.out);
for (int number: inputNumbers) {
if (number != minNumber) {
out.print(number + " ");
}
}
for (int index = 0; index < maxCount; index++) {
out.print(minNumber + " ");
}
out.flush();
}
}