Skip to content

Commit 1161ddc

Browse files
committed
๐Ÿ› [fix] ์ค‘๋ณต ๋ฐฉ์ง€๋ฅผ ์œ„ํ•œ usedNodeIds ํƒ€์ž… Integer -> String์œผ๋กœ ๋ณ€๊ฒฝ
1 parent 34ad171 commit 1161ddc

File tree

1 file changed

+15
-20
lines changed

1 file changed

+15
-20
lines changed

โ€Žsrc/main/java/com/going/server/domain/quiz/generate/ConnectQuizGenerator.javaโ€Ž

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public ConnectQuizDto generate(Graph graph) {
3838
// ์ตœ์ข… ๋ฌธ์ œ ๋ฆฌ์ŠคํŠธ
3939
List<ConnectQuizDto.ConnectQuiz> quizList = new ArrayList<>();
4040
// ์ด๋ฏธ ์‚ฌ์šฉํ•œ ๋…ธ๋“œ Id ๊ธฐ๋ก์šฉ (์ค‘๋ณต ๋ฐฉ์ง€)
41-
Set<Integer> usedNodeIds = new HashSet<>();
41+
Set<String> usedNodeIds = new HashSet<>();
4242

4343
// ๋ฌธ์ œ 3๊ฐœ ๋งŒ๋“ค๊ธฐ
4444
for (int i = 0; i < 3; i++) {
@@ -53,47 +53,42 @@ public ConnectQuizDto generate(Graph graph) {
5353
}
5454

5555
// connect ํ€ด์ฆˆ ๋ฌธ์ œ ์ƒ์„ฑ
56-
private static void createConnectQuiz(Random random, List<NodeDto> nodeDtoList, List<ConnectQuizDto.ConnectQuiz> quizList, Set<Integer> usedNodeIndices) {
57-
if(usedNodeIndices.size() >= nodeDtoList.size()) {
58-
// ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ๋‹ค ์‚ฌ์šฉํ–ˆ์œผ๋ฉด ์ถ”๊ฐ€ ์ƒ์„ฑ ๋ถˆ๊ฐ€
59-
return;
60-
}
56+
private static void createConnectQuiz(Random random, List<NodeDto> nodeDtoList,
57+
List<ConnectQuizDto.ConnectQuiz> quizList, Set<String> usedNodeIds) {
58+
if (usedNodeIds.size() >= nodeDtoList.size()) return;
6159

62-
int questionTargetId;
60+
NodeDto targetNode;
61+
String targetId;
6362

64-
// nodeDtoList ์ค‘ 1๊ฐœ์˜ id๋กœ ๋žœ๋ค ์„ ํƒ (์ค‘๋ณต ๋ฐฉ์ง€)
63+
// node์˜ ID(String) ๊ธฐ์ค€ ์ค‘๋ณต ์ฒดํฌ
6564
do {
66-
questionTargetId = random.nextInt(nodeDtoList.size());
67-
} while (usedNodeIndices.contains(questionTargetId));
65+
int randomIndex = random.nextInt(nodeDtoList.size());
66+
targetNode = nodeDtoList.get(randomIndex);
67+
targetId = String.valueOf(targetNode.getId());
68+
} while (usedNodeIds.contains(targetId));
6869

69-
NodeDto targetNode = nodeDtoList.get(questionTargetId);
70-
usedNodeIndices.add(Integer.valueOf(targetNode.getId())); // ์‚ฌ์šฉํ•œ Id ์ถ”๊ฐ€
70+
usedNodeIds.add(targetId); // ์‚ฌ์šฉ๋œ ID ๋“ฑ๋ก
7171

72-
// ์ •๋‹ต
7372
String answer = targetNode.getLabel();
7473

75-
// ์ •๋‹ต ํฌํ•จ 5๊ฐœ ๋ณด๊ธฐ ์ƒ์„ฑ
7674
Set<String> options = new HashSet<>();
77-
options.add(answer); // ์ •๋‹ต ๋ณด๊ธฐ ์ถ”๊ฐ€
75+
options.add(answer);
7876

79-
while (options.size() < 5) { // ๋žœ๋ค ๋ณด๊ธฐ ์ถ”๊ฐ€
77+
while (options.size() < 5) {
8078
int randomIndex = random.nextInt(nodeDtoList.size());
8179
String option = nodeDtoList.get(randomIndex).getLabel();
8280
options.add(option);
8381
}
8482

85-
// ๋ณด๊ธฐ ๋ฆฌ์ŠคํŠธ ๋žœ๋ค ๋ฐฐ์น˜
8683
List<String> shuffledOptions = new ArrayList<>(options);
8784
Collections.shuffle(shuffledOptions);
8885

89-
// ๋ฌธ์ œ ํ•˜๋‚˜ ์ƒ์„ฑ
9086
ConnectQuizDto.ConnectQuiz quiz = ConnectQuizDto.ConnectQuiz.builder()
91-
.questionTargetId(String.valueOf(questionTargetId))
87+
.questionTargetId(targetId) // ID๋Š” ์ด์ œ ๋ฌธ์ž์—ด
9288
.shuffledOptions(shuffledOptions)
9389
.answer(answer)
9490
.build();
9591

96-
// ๋ฌธ์ œ ๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€
9792
quizList.add(quiz);
9893
}
9994
}

0 commit comments

Comments
ย (0)