Statistics

Problem Statement for "GirlsAndBoys"

Problem Statement

There are N students standing in a single row, one next to the other, numbered 0 to N-1 from left to right. Your goal is to minimize the number of adjacent pairs where one student is a boy and the other is a girl. More precisely, you want to minimize the number of values i, 0 <= i < N-1, where student i and student i+1 are of different genders.

You are given the current arrangement as a String row, where the i-th character is 'G' if student i is a girl, and 'B' if student i is a boy. In a single move, you can choose two adjacent students and swap their positions. Return the minimum number of moves required to achieve your goal.

Definition

Class:
GirlsAndBoys
Method:
sortThem
Parameters:
String
Returns:
int
Method signature:
int sortThem(String row)
(be sure your method is public)

Constraints

  • row will contain between 1 and 50 characters, inclusive.
  • Each character in row will be 'G' or 'B'.

Examples

  1. "GGBBG"

    Returns: 2

    You can swap the rightmost girl with the two boys (one after the other) to get "GGGBB", with a minimum of only 1 pair of adjacent students of different gender.

  2. "BBBBGGGG"

    Returns: 0

    There is already a single pair of adjacent students of different gender, and there is no arrangement without such pairs at all, so the best solution is to swap nothing.

  3. "BGBGBGBGGGBBGBGBGG"

    Returns: 33

  4. "B"

    Returns: 0

    With only one student, there is not much swapping to do.

  5. "G"

    Returns: 0

  6. "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"

    Returns: 0

  7. "GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"

    Returns: 0

  8. "BBGGBBB"

    Returns: 4

  9. "BBBBBGBGBBB"

    Returns: 7

  10. "BBBB"

    Returns: 0

  11. "BBGBBB"

    Returns: 2

  12. "GBGBGG"

    Returns: 3

  13. "BGGG"

    Returns: 0

  14. "GGGGBG"

    Returns: 1

  15. "GGBGBB"

    Returns: 1

  16. "GGGG"

    Returns: 0

  17. "BBBBBBBBB"

    Returns: 0

  18. "BGGBBBGGB"

    Returns: 10

  19. "BBBGBBBB"

    Returns: 3

  20. "GBBGGGGG"

    Returns: 2

  21. "GBGBGGBB"

    Returns: 5

  22. "GGGGGBBGG"

    Returns: 4

  23. "GGBGGGGBG"

    Returns: 6

  24. "BBBBBBBBBBBBBBBBBBBBBBBBBBBBB"

    Returns: 0

  25. "BGBBBBBBBBBGBBBGGBBGBBBB"

    Returns: 43

  26. "BBBBGGGGBGGGGBBGBBBGBBBGBGGB"

    Returns: 94

  27. "BBGGGGBBBBBGBGBGBBBGGBGBBBG"

    Returns: 85

  28. "GGBBBGGGBBGGBGBBG"

    Returns: 33

  29. "BBBGGBBGBGGGG"

    Returns: 7

  30. "BGGGGGGGBGGGGGGGGGGGGGGGG"

    Returns: 7

  31. "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"

    Returns: 0

  32. "BBBBBBBBBBBBGBBGBGBBBBBBBBBBBG"

    Returns: 37

  33. "BBGGGBGGBGBBGBBBBBBBGGGBBBBGBBBBBGBBBGBGBBGBG"

    Returns: 208

  34. "BBBGGBBBGGGBBGBBBBGGGBBBGGGBBGBGBBGBBGBGGGB"

    Returns: 197

  35. "BBBGGBBGBBGGBGBBGBBBGBBGBBBBBGGGGGBBGGB"

    Returns: 153

  36. "GBBGBBGGGGBGBGGGGGGGGGBGGBGGBGGBGGGBGGGBGGGGGG"

    Returns: 148

  37. "GGGGBGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"

    Returns: 4

  38. "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"

    Returns: 0

  39. "GBGBBBBGGBGBBGBBBBGGBBBBBBGBBBBBBBBBBBGBBGBBBGBG"

    Returns: 196

  40. "GBGGGGBGBBBBBBBBBBBBGGGBGBBBBBGGGBBBBGBBBBBGGGGG"

    Returns: 259

  41. "BGGBBGBBBGBBBGGGBGGGGGBBGGGBGBBGGBGBBBBBGGBBGBBB"

    Returns: 248

  42. "GGBGGGBGGBGBGGGGGGGGGGGBBBBGBBGGGGGBGGGGGGGGBBGG"

    Returns: 226

  43. "GGGGGGGBGGBBGGBGGGGGGBBGBBGGGGGGGGBGBGGGGGGGGGGGB"

    Returns: 197

  44. "GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"

    Returns: 0

  45. "BGBBBBBBBBBBBBBBBBBBBBGGBBBBBBBBBGBBBBBBBBBBBBBGBB"

    Returns: 109

  46. "BBBBGGGBBGBBGBBBGBBGGBBBBBBGBBBBGBBGBBBBBBBBBBBGGG"

    Returns: 238

  47. "BBGGGBBBGGGGBBBGGGGBBBBBGGBGGBBBBBGBBBBBBGGBBBBBBG"

    Returns: 212

  48. "BGGBBBGBBGBGGBGBGGBGBGBGBGGBGGGGGBGBGGBGBGBBGGBGGG"

    Returns: 243

  49. "GGGGGBGBBGBGBBGGGBGBGGGGGGBGGGGGGBGBGGGGBGGBGGGGGG"

    Returns: 190

  50. "GBGBBGGGGBGGGBBGGGGGGBBGGBGGGGBBGGGGGGBBBGBGGGBGGG"

    Returns: 258

  51. "GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGBGGGGGGGGGGGGGGGGGGG"

    Returns: 19

  52. "GBGBGBGBGBGBGBGBGBGBGBGBGBGBGBGBGBGBGBGBGBGBGBGBGB"

    Returns: 300

  53. "BGBGBGBGBGBGBGBGBGBGBGBGBGBGBGBGBGBGBGBGBGBGBGBGBG"

    Returns: 300

  54. "BGGBBGGBBGGBBGGBBGGBBGGBBGGBBGGBBGGBBGGBBGGBBGGBBG"

    Returns: 312

  55. "GBBGGBBGGBBGGBBGGBBGGBBGGBBGGBBGGBBGGBBGGBBGGBBGBG"

    Returns: 312

  56. "BBGGGGB"

    Returns: 4

  57. "BGBGBGBG"

    Returns: 6

  58. "BGB"

    Returns: 1

  59. "GBBBGGGGGGGG"

    Returns: 3

  60. "BGGGGGGBBBB"

    Returns: 6

  61. "GBGBGBGBGBGBGBGBGBGBGBGBGBGBGBGBGBGBGBGBGB"

    Returns: 210

  62. "BGGGGGGGBBBBBBBBB"

    Returns: 7

  63. "BGGGGBB"

    Returns: 4

  64. "BGGBBBB"

    Returns: 2

  65. "BGBBB"

    Returns: 1

  66. "GBBBBBGGGGG"

    Returns: 5

  67. "BGGGBBB"

    Returns: 3

  68. "GBBBBBBBBBGGGGGGGGGGGGG"

    Returns: 9

  69. "BBGBBBBBBBBBBB"

    Returns: 2

  70. "BGBBBBBB"

    Returns: 1

  71. "BGGGGGGGGGGGBBBBBBBBBB"

    Returns: 11

  72. "BGGGGBBBBG"

    Returns: 9

  73. "GBBBBGGGGGGG"

    Returns: 4

  74. "BGBBBBGGBBBBGGBBBBGGGBBGGBB"

    Returns: 72

  75. "BGGGGGGGGBBBB"

    Returns: 8

  76. "GGBBGBBBBGBGBBGBG"

    Returns: 34

  77. "BGGGGBBBBBBGBG"

    Returns: 19


This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2024, TopCoder, Inc. All rights reserved.
This problem was used for: