[BE] ์ด๊ฐํ ๐ฅ ์ค๋์ ์ง๊ฟ์?#6
[BE] ์ด๊ฐํ ๐ฅ ์ค๋์ ์ง๊ฟ์?#6hyxklee wants to merge 6 commits intoLeets-Official:mainfrom
Conversation
taeseokyang
left a comment
There was a problem hiding this comment.
์๊ณ ํ์ จ์ต๋๋ค!
์ ์ ์ฌํญ์ด ์์ต๋๋ค. ๋ฐ์ดํฐ์ ์ ํจ์ฑ์ ํ๋จํ๋ ํจ์์์ ์์ธ๋ฅผ ๋์ง์ง ๋ง๊ณ , ๋ฆฌํดํ์์ boolean์ผ๋ก ํ์ฌ ๊ฒ์ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋๋ก ๋ฐ๊ฟ๋ณด์๋ ๊ฑธ ์ถ์ฒํฉ๋๋ค.
๋ง์ฝ ๊ทธ๋ ๊ฒ ํ๋ค๋ฉด ์๋์ ๊ฐ์ด ์์ฑ ํ ์ ์์ผ๋ฉฐ, try catch ๋ฌธ์ ์ฌ์ฉํ์ง ์์๋ ๋ฉ๋๋ค!
if (!checkHasNoEnglish(members)) { break; }
์์ธ ์ ๊ทธ๋ฅ ๋๋ด๋ ๊ฒ์ด ์๋ ๋ค์ ์งํํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ ๋ฐฉ์์ด ๋์ฑ ์ข์๊ฑฐ ๊ฐ์ต๋๋ค.
| } | ||
|
|
||
| //๋ฉค๋ฒ ์ ๋ ฅ ์์ธ์ฒ๋ฆฌ | ||
| private String inputMembers(String members, Scanner scan) { |
There was a problem hiding this comment.
์ด๋ฏธ run() ํจ์ ์์์ ์
๋ ฅ๋ฐ๋ ์ฝ๋๊ฐ ์๋๋ฐ, ์ด ํจ์ ๊ธฐ๋ฅ ๋ํ ์
๋ ฅ๋ฐ๋ ํจ์์
๋๋ค!
์ด๋ ๊ฒ ์ค๋ณต๋ ์ฝ๋๊ฐ ์๊ธธ ๊ฒฝ์ฐ, ์ดํ์ ์ฝ๋๋ฅผ ์์ ํ ๋ ๋๋ถ๋ถ ๋ชจ๋ ์์ ํด์ผํ๋ ๋ถํธํจ์ด ์๊น๋๋ค.
์๋์ ๊ฐ์ด ์์ ํ๋ฉด, run()ํจ์์์ ์
๋ ฅ ์ฝ๋๋ ์์ด๋ ๋ ๊ฑฐ ๊ฐ์์!!
๋ํ 'InputMismatchException'์ 'nextInt()', 'nextDouble()' ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ๋ ๋๋ ์์ธ๋ผ๊ณ ํฉ๋๋ค.
๋๋ฌธ์ IllegalArgumentException() ์ฌ์ฉํ์๋ฉด ๋ ๊ฑฐ ๊ฐ์ต๋๋ค :D
private String inputMembers() {
Scanner scan = new Scanner(System.in);
String members;
while (true) {
System.out.println("๋ฉค๋ฒ์ ์ด๋ฆ์ ํ๊ธ๋ก ๋ค์ ์
๋ ฅํด ์ฃผ์ธ์. ',' ๋ก ๊ตฌ๋ถ");
members = scan.nextLine();
try {
checkHasNoEnglish(members);
break;
} catch (IllegalArgumentException e) {
System.out.println("์์ด ์
๋ ฅ ํ์ง ๋ง์์ค!");
}
}
return members;
}
There was a problem hiding this comment.
์ค๋ณต์ ์ ๊ฑฐํ๋ ๊ฒ์ ์ ์ง๋ณด์ ๋ฐ ๊ฐ๋
์ฑ ํฅ์์ ๋์์ด ๋๋ ๋ถ๋ถ์ด์ฃ ๐
๊ทธ๋ฐ๋ฐ inputMembers๋ฅผ ํธ์ถํ ๋๋ง๋ค ์๋ก์ด Scanner๋ฅผ ์์ฑํ๊ฒ ๋๋ค์. ์ด๋ฅผ ํด๊ฒฐํ ๋ฐฉ๋ฒ๋ ๊ณ ๋ฏผํด๋ณด๋ฉด ์ข์ ๊ฒ ๊ฐ์์^,^
| // ๋ฌธ์์ด๋ก๋ ๋ฉค๋ฒ๋ค์ ๋ฆฌ์คํธ๋ก ๋ถ๋ฆฌํ๋ ํจ์์ ๋๋ค. | ||
| public List<String> parseMembers(String members) { | ||
| return new ArrayList<>(); | ||
| String[] arr = members.split(","); |
There was a problem hiding this comment.
ํด๋น ์ฝ๋๋ ๊ฐ๋จํ ์ฝ๋๋ผ ์ดํดํ๊ธฐ ์ฝ์ง๋ง ๋ณ์๋ช ์ ์๋ฏธ์ ๋ง์ถฐ์ ์ง์ผ๋ฉด ๋์ฑ ์ดํดํ๊ธฐ ์ข์๊ฑฐ ๊ฐ์ต๋๋ค!
|
|
||
| //์ต๋ ์ง ์ ์ ๋ ฅ, ์๋ชป๋ ์ ๋ ฅ ์ ์์ธ์ฒ๋ฆฌ | ||
| System.out.println(); | ||
| System.out.println("์ต๋ ์ง ์๋ฅผ ์ ๋ ฅํด์ฃผ์ธ์."); |
There was a problem hiding this comment.
"\n์ต๋ ์ง ์๋ฅผ ์ ๋ ฅํด์ฃผ์ธ์." ๋ผ๊ณ ํ๋ฉด ์ค๋ฐ๊ฟ์ด ๋ฉ๋๋ค! ํ์ง๋ง ๊ธฐ์กด ์ฒ๋ผํด๋ ์คํ๋ ค ๋ช ์์ ์ด์ด์ ์ข์ ๊ฑฐ ๊ฐ๊ธฐ๋ ํฉ๋๋ค!
| } | ||
|
|
||
| //์ต๋ ์ง ์ ์ ๋ ฅ ์์ธ ์ฒ๋ฆฌ | ||
| private static int getMaxGroup(Scanner scan) { |
There was a problem hiding this comment.
์ด ํจ์์ ๊ฒฝ์ฐ๋ ๋ฉค๋ฒ ์ ๋ ฅ ํจ์์ฒ๋ผ ์ฝ๋๊ฐ ์ค๋ณต๋ฉ๋๋ค! ์ค๋ณต๋์ง ์๋๋ก ์์ ํ๋ฉด ์ข์๊ฑฐ ๊ฐ์ต๋๋ค!
| } | ||
|
|
||
| //์ต๋ ์ง ์ ํฌ๊ธฐ ์์ธ ์ฒ๋ฆฌ | ||
| private int checkMaxGroup(List<String> memberList, int maxGroup, Scanner scan) { |
There was a problem hiding this comment.
๋ง์ฐฌ ๊ฐ์ง๋ก ์ค๋ณต๋ฉ๋๋ค!
System.out.println("์ต๋ ์ง ์๋ฅผ ๋ค์ ์
๋ ฅํด์ฃผ์ธ์");
์์ "์ต๋ ์ง ์๋ฅผ ๋ค์ ์
๋ ฅํด์ฃผ์ญ์ผ" ๋ผ๊ณ ๋ณ๊ฒฝํ๊ณ ์ถ๋ค๋ฉด 3์ค์ ์ฝ๋๋ฅผ ์ฐพ์์ ๋ณ๊ฒฝํด์ผํฉ๋๋ค!
| } | ||
|
|
||
| //๋ค์ ์ถ์ฒจ ๊ธฐ๋ฅ + ์์ธ์ฒ๋ฆฌ | ||
| private void reDraw(List<String> memberList, int maxGroup, Scanner scan) { |
There was a problem hiding this comment.
๋ค์ ์ถ์ฒจ์ด๋ผ๋ ํจ์๋ช
๊ณผ๋ ๋ค๋ฅด๊ฒ, ์ฒซ ์์ฑ, ๋ค์ ์ถ์ฒจ, Y ๋๋ N ์
๋ ฅ ์ฝ๋๋ฑ ๋ง์ ๊ธฐ๋ฅ๋ค์ด ํจ์ถ๋์ด์์ต๋๋ค.
ํ๋์ ํจ์์๋ ํ๋์ ๊ธฐ๋ฅ์ด ์์ด์ผ ํฉ๋๋ค( ์ ๋์ ์ธ๊ฑด ์๋๊ณ , ๊ทธ๋ฐ๊ฑธ ์ ํธํฉ๋๋ค )
ํ์ฌ ์ด ํจ์๋ ๊ธธ๊ณ ์ฅํฉํ์ฌ ์ดํดํ๊ธฐ ์ด๋ ต์ต๋๋ค. ๋ชจ๋ ๊ฒฝ์ฐ๋ ์๋๊ฒ ์ง๋ง ํ ํจ์์ ์ต๋ 4์ค ์ด๋ผ๊ณ ์๊ฐํ์๋ฉด ์ข์๊ฑฐ ๊ฐ์ต๋๋ค.
๋๋ฌธ์ ๋ค์ฌ์ฐ๊ธฐ๋ 3๋จ ์ด์์ ์๋๋๊ฒ ์ข์ต๋๋ค!
๋๋ฌธ์ ๊ฐ๊ฐ์ ํ ๊ธฐ๋ฅ์ ์ํด ํจ์๋ฅผ ๋ถ๋ฆฌํ์ฌ ์ฃผ์ธ์!
ay-eonii
left a comment
There was a problem hiding this comment.
์ฒซ ๋ฏธ์
๊ณ ์ํ์
จ์ต๋๋ค!!
์ฌ์
๋ ฅ๊น์ง ๊ตฌํํ์ ์ ์ด ์ธ์๊น๋ค์! ๐
| testImplementation platform('org.assertj:assertj-bom:3.25.1') | ||
| testImplementation('org.junit.jupiter:junit-jupiter') | ||
| testImplementation('org.assertj:assertj-core') | ||
| implementation("com.google.guava:guava:31.1-jre") |
There was a problem hiding this comment.
ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ด์ ๊ฐ ์๋์?
| } | ||
|
|
||
| //๋ฉค๋ฒ ์ ๋ ฅ ์์ธ์ฒ๋ฆฌ | ||
| private String inputMembers(String members, Scanner scan) { |
There was a problem hiding this comment.
์ค๋ณต์ ์ ๊ฑฐํ๋ ๊ฒ์ ์ ์ง๋ณด์ ๋ฐ ๊ฐ๋
์ฑ ํฅ์์ ๋์์ด ๋๋ ๋ถ๋ถ์ด์ฃ ๐
๊ทธ๋ฐ๋ฐ inputMembers๋ฅผ ํธ์ถํ ๋๋ง๋ค ์๋ก์ด Scanner๋ฅผ ์์ฑํ๊ฒ ๋๋ค์. ์ด๋ฅผ ํด๊ฒฐํ ๋ฐฉ๋ฒ๋ ๊ณ ๋ฏผํด๋ณด๋ฉด ์ข์ ๊ฒ ๊ฐ์์^,^
|
|
||
| //๋ค์ ์ถ์ฒจ ๊ธฐ๋ฅ + ์์ธ์ฒ๋ฆฌ | ||
| private void reDraw(List<String> memberList, int maxGroup, Scanner scan) { | ||
| String index; |
There was a problem hiding this comment.
y ๋๋ n ์ด index ์ผ๊น์?
์กฐ๊ธ ๋ ์๋ฏธ๋ฅผ ๋ด์ ๋ณ์๋ช ์ ์ง์ด์ฃผ๋ฉด ๋ค๋ฅธ ์ฌ๋์ด ์ฝ๋๋ฅผ ์ดํดํ๋๋ฐ ๋์์ด ๋ ๊ฒ ๊ฐ์์!
| public List<String> parseMembers(String members) { | ||
| return new ArrayList<>(); | ||
| String[] arr = members.split(","); | ||
| return new ArrayList<>(Arrays.asList(arr)); |
There was a problem hiding this comment.
์๋ก์ด ArrayList๋ก ๊ฐ์ธ ๋ฐํํ ์ด์ ๊ฐ ์๋์?
(Arrays.asList()๋ด๋ถ๋ฅผ ๋ค์ด๊ฐ๋ด๋ ์ข์ ๊ฒ ๊ฐ์์!)
| private String inputMembers(String members, Scanner scan) { | ||
| while(true) { | ||
| try { | ||
| checkHasNoEnglish(members); |
| private void reDraw(List<String> memberList, int maxGroup, Scanner scan) { | ||
| String index; | ||
| while(true){ | ||
| printResult(generateRandomGroups(memberList, maxGroup)); |
There was a problem hiding this comment.
์ด๋ฒ ๋ฏธ์
์์ generateRandomGroups(memberList, maxGroup)์ด ์ํํ๋ ๋๋ค ๊ทธ๋ฃน์ ์ถ์ถํ๋ ๊ธฐ๋ฅ์ด ํต์ฌ์ด๋ผ๊ณ ์๊ฐํ๋๋ฐ์!
printResult์ ์ธ์๋ก inlineํ๊ธฐ ๋ณด๋ค ๋ถ๋ฆฌํ๋ค๋ฉด ์ด๋ค ๋ถ๋ถ์ด ํต์ฌ์ธ์ง ํ์
ํ๊ธฐ ๋ ์ฌ์ธ ๊ฒ ๊ฐ๋ค์ ๐

๋ฏธ์ ์คํ ๊ฒฐ๊ณผ
[ํ ์คํธ ์คํ ํฐ๋ฏธ๋ ์บก์ณ ์ด๋ฏธ์ง ํ์ผ ์ฒจ๋ถ]

๋ฏธ์ ์คํ ์คํจ ์ผ์ด์ค ์กด์ฌ ์, ์คํจํ ์ด์ ๊ณ ์ฐฐํด๋ณด๊ธฐ
์ ์์๋ ํ์ธ
๋ฌด์์๋ก ์ง๊ถ์ ์ถ์ฒจํ๋ generateRandomGroups ๋ฉ์๋์ ๋ํ ๋จ์ ํ ์คํธ๋ฅผ ์์ฑํ๋ ๊ฒ ์ข์์ง ๋๋ค์ ๋ํ ๋จ์ ํ ์คํธ๋ ๋ฌด์ํ๋ ๊ฒ ์ข์์ง ๊ณ ๋ฏผ ์ค์
๊ธฐ๋ฅ ๋ช ์ธ์
String์ผ๋ก ์ด๋ฆ์ ์ ๋ ฅ๋ฐ์ [parseMembers] ๋ฉ์๋์์ ','๋ฅผ ๊ธฐ์ค์ผ๋ก ์ด๋ฆ์ ๋๋
์ด๋ฆ ์ ๋ ฅ์์ ์์ ์์ด๋ฅผ ์ ๋ ฅํ๋ฉด [checkHasNoEnglish]์์ ์์ธ๋ฅผ ๋ฐ์์ํค๊ณ [inputMembers]๋ผ๋ ์์ธ์ฒ๋ฆฌ ๋ฉ์๋๋ฅผ ๋ฐ๋ก ๊ตฌ์ฑํด ์ฌ๋ฐ๋ฅธ ๋ฌธ์์ด๋ง ์ ๋ ฅ๋๊ฒ ์ ํ
์ต๋ ์ง ์๋ฅผ ์ ๋ ฅํ๊ณ [getMaxGroup]๋ฅผ ํตํด ์ซ์ ์ธ์ ๋ค๋ฅธ ๊ฐ์ด ์ ๋ ฅ๋์ง ์๊ฒ ์์ธ์ฒ๋ฆฌ, [checkMaxGroup]๋ฅผ ํตํด ์ต๋ ์ง ์๊ฐ ์ ๋ ฅ๋ ์ด๋ฆ ์๋ณด๋ค ๋ง์ด ์๊ฒ ์์ธ ์ฒ๋ฆฌ
๋ค์ ์ถ์ฒจํ๋ ๊ธฐ๋ฅ ๊ตฌํ์ ์ํด [reDraw] ๋ฉ์๋๋ฅผ ๊ตฌ์ฑํด 'y'๊ฐ ์ ๋ ฅ๋๋ฉด ๋ค์ ๋๋ค์ผ๋ก ์ง๊ถ์ ์ถ๋ ฅํด์ฃผ๊ณ , 'n'์ด ์ ๋ ฅ๋๋ฉด ํ๋ก๊ทธ๋จ์ ์ข ๋ฃํจ
์ฌ๊ธฐ์ [checkYesOrNo]๋ฅผ ํตํด 'y', ๋ 'n'์ธ์ ๋ค๋ฅธ ๋ฌธ์๊ฐ ์ ๋ ฅ๋์ง ์๊ฒ ์์ธ์ฒ๋ฆฌ