@@ -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