Problem Statement
In many computer systems, multiple processes can read from the same resource during the same clock cycle, but only a single process can write to the resource during a clock cycle. Reads and writes cannot be mixed during the same clock cycle. Given a history of the reads and writes that occurred during a particular computation as a
For example, if trace is "RWWRRR" and procs is 3, then the minimum number of clock cycles is 4: one for the first read, one each for the two writes, and one for the last group of reads.
Definition
- Class:
- MultiRead
- Method:
- minCycles
- Parameters:
- String, int
- Returns:
- int
- Method signature:
- int minCycles(String trace, int procs)
- (be sure your method is public)
Constraints
- trace will contain between 1 and 50 characters, inclusive.
- Each character in trace will be 'R' or 'W'.
- procs will be between 1 and 10, inclusive.
Examples
"RWWRRR"
3
Returns: 4
The example above.
"RWWRRRR"
3
Returns: 5
Now the final group of 'R's takes two cycles.
"WWWWW"
5
Returns: 5
"RRRRRRRRRR"
4
Returns: 3
"RWRRWWRWRWRRRWWRRRRWRRWRRWRRRRRRRRRWRWRWRRRRWRRRRR"
4
Returns: 30
"RRRWRWRWRRRRRWWW"
1
Returns: 16
"RRRWRWRWRRRRRWWW"
2
Returns: 13
"RRRRRRRRRRRRRRRRRRWRRRRRRRRRRRRRRRRRRRWRRWRWRRRWRW"
2
Returns: 30
"RRRRRRRRRRRRRRRRRRWRRRRRRRRRRRRRRRRRRRWRRWRWRRRWRW" "RRRRWRRRRRRRWRRRRRRRRRRRRRRRRRWRRRRRRRRRRRRRRRRRWR"
3
Returns: 23
"RRRRRRRRRRRRRRRRRRWRRRRRRRRRRRRRRRRRRRWRRWRWRRRWRW" "RRRRWRRRRRRRWRRRRRRRRRRRRRRRRRWRRRRRRRRRRRRRRRRRWR" "RRRRRRRRRRRRRWRRRWRRRRRRWRRRWRWRRRRRRRRRRRWRRRRRRR"
4
Returns: 20
"RRRRRRRRRRRRRRRRRRWRRRRRRRRRRRRRRRRRRRWRRWRWRRRWRW" "RRRRWRRRRRRRWRRRRRRRRRRRRRRRRRWRRRRRRRRRRRRRRRRRWR" "RRRRRRRRRRRRRWRRRWRRRRRRWRRRWRWRRRRRRRRRRRWRRRRRRR" "RWRWRRRRRRRRRRRWRRWRRRWRRWWRRRRWRRRRRRRRRRRRRRRRWR"
5
Returns: 18
"RRRRRRRRRRRRRRRRRRWRRRRRRRRRRRRRRRRRRRWRRWRWRRRWRW" "RRRRWRRRRRRRWRRRRRRRRRRRRRRRRRWRRRRRRRRRRRRRRRRRWR" "RRRRRRRRRRRRRWRRRWRRRRRRWRRRWRWRRRRRRRRRRRWRRRRRRR" "RWRWRRRRRRRRRRRWRRWRRRWRRWWRRRRWRRRRRRRRRRRRRRRRWR" "RRWRRRRRRRRRRWRRRRRRRRRRRRRRRWWRRRRRWRRRRRRRRRRRRR"
6
Returns: 17
"RRRRRRRRRRRRRRRRRRWRRRRRRRRRRRRRRRRRRRWRRWRWRRRWRW" "RRRRWRRRRRRRWRRRRRRRRRRRRRRRRRWRRRRRRRRRRRRRRRRRWR" "RRRRRRRRRRRRRWRRRWRRRRRRWRRRWRWRRRRRRRRRRRWRRRRRRR" "RWRWRRRRRRRRRRRWRRWRRRWRRWWRRRRWRRRRRRRRRRRRRRRRWR" "RRWRRRRRRRRRRWRRRRRRRRRRRRRRRWWRRRRRWRRRRRRRRRRRRR" "RRRRRRRRWRRRRRRRRRWRRRRRRRRRWRRRRRRWRRRRRRRRRRRRRR"
7
Returns: 16
"RRRRRRRRRRRRRRRRRRWRRRRRRRRRRRRRRRRRRRWRRWRWRRRWRW" "RRRRWRRRRRRRWRRRRRRRRRRRRRRRRRWRRRRRRRRRRRRRRRRRWR" "RRRRRRRRRRRRRWRRRWRRRRRRWRRRWRWRRRRRRRRRRRWRRRRRRR" "RWRWRRRRRRRRRRRWRRWRRRWRRWWRRRRWRRRRRRRRRRRRRRRRWR" "RRWRRRRRRRRRRWRRRRRRRRRRRRRRRWWRRRRRWRRRRRRRRRRRRR" "RRRRRRRRWRRRRRRRRRWRRRRRRRRRWRRRRRRWRRRRRRRRRRRRRR" "RRRRRRRWRRRRRRRRRRRRRRRWRRRRRRRRRRRRRRRRRRRRWRWRRR"
8
Returns: 16
"RRRRRRRRRRRRRRRRRRWRRRRRRRRRRRRRRRRRRRWRRWRWRRRWRW" "RRRRWRRRRRRRWRRRRRRRRRRRRRRRRRWRRRRRRRRRRRRRRRRRWR" "RRRRRRRRRRRRRWRRRWRRRRRRWRRRWRWRRRRRRRRRRRWRRRRRRR" "RWRWRRRRRRRRRRRWRRWRRRWRRWWRRRRWRRRRRRRRRRRRRRRRWR" "RRWRRRRRRRRRRWRRRRRRRRRRRRRRRWWRRRRRWRRRRRRRRRRRRR" "RRRRRRRRWRRRRRRRRRWRRRRRRRRRWRRRRRRWRRRRRRRRRRRRRR" "RRRRRRRWRRRRRRRRRRRRRRRWRRRRRRRRRRRRRRRRRRRRWRWRRR" "RRWRRRRRRRRWRRRRWRRRRRRRRRRWRRRWWWRRRRRRRRRRWRRRRW"
9
Returns: 15
"WRRRWRRRRRRRRRRRRRWRRRRRRRRRWRRRRWRRRRWWRRWWWRRRRR"
10
Returns: 18
"RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR"
7
Returns: 8
"WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW"
10
Returns: 50
"R"
3
Returns: 1
"W"
2
Returns: 1
"RRRRRRR"
1
Returns: 7
"RWRRWWRWRWRRRWWRRRRWRRWRRWRRRRRRRRRWRWRWRRRRWRRRRR"
4
Returns: 30
"RRRRWWRRRRWW"
2
Returns: 8
"RWWRRRR"
3
Returns: 5
"RWRRWWRWRWRRRWWRRRRWRRWRRWRRRRRRRRRWRRRRWWWRRRRRR"
10
Returns: 25
"WRRRRRRRWRRRWWR"
2
Returns: 11
"RWRW"
2
Returns: 4
"RRRRRR"
1
Returns: 6
"RWWRRRRRRWWRRRWRWRWRWWRRWWRWRWWRRRWWWRRRWRWRRRWW"
2
Returns: 40
"WRWR"
4
Returns: 4
"RR"
1
Returns: 2
"RWRRWWRWRWRRRWWRRRRWRRWRRWRRRRRRRRRWRWRWRRRRWRRRRR"
4
Returns: 30
"RRRRWWRRRRWW"
2
Returns: 8
"RWWRRRR"
3
Returns: 5
"RWRRWWRWRWRRRWWRRRRWRRWRRWRRRRRRRRRWRRRRWWWRRRRRR"
10
Returns: 25
"WRRRRRRRWRRRWWR"
2
Returns: 11
"RWRW"
2
Returns: 4
"RRRRRR"
1
Returns: 6
"RWWRRRRRRWWRRRWRWRWRWWRRWWRWRWWRRRWWWRRRWRWRRRWW"
2
Returns: 40
"WRWR"
4
Returns: 4
"RR"
1
Returns: 2