[보충] 중복 없는 난수 발생시키기

부트캠프(END)/Java|2022. 8. 17. 10:14
public static String getRand() {
  String result = "";
  int[] rand = new int[(int)(Math.random() * 4) + 5]; //5~8
  int num = 0;
  boolean bCheck = false;
  for (int i = 0; i < rand.length; i++) {
    bCheck = true;
    while (bCheck) {
      num = (int)(Math.random() * 14) + 1; //1~14
      bCheck = false;
      for (int j = 0; j < i; j++) {
        if (rand[j] == num) { //중복되는 상황
          bCheck = true;
          break;
        }
      }
    }
    rand[i] = num;
  }
  //정렬
  for (int i = 0; i < rand.length - 1; i++) {
    for (int j = i + 1; j < rand.length; j++) {
      if (rand[i] > rand[j]) {
        int tmp = rand[i];
        rand[i] = rand[j];
        rand[j] = tmp;
      }
    }
  }
  for (int i = 0; i < rand.length; i++) {
    result += rand[i] + ",";
  }
  result = result.substring(0, result.lastIndexOf(","));
  return result;
}

댓글()