Skip to content

[๐Ÿš€ ์‚ฌ์ดํด2 - ๋ฏธ์…˜ (๋ธ”๋ž™์žญ ๊ฒŒ์ž„ ์‹คํ–‰)] ํ˜„๋ฏธ๋ฐฅ ๋ฏธ์…˜ ์ œ์ถœํ•ฉ๋‹ˆ๋‹ค.#1112

Open
gahyeonnni wants to merge 28 commits intowoowacourse:gahyeonnnifrom
gahyeonnni:step2

Conversation

@gahyeonnni
Copy link

@gahyeonnni gahyeonnni commented Mar 13, 2026

์ฒดํฌ ๋ฆฌ์ŠคํŠธ

  • ๋ฏธ์…˜์˜ ํ•„์ˆ˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ชจ๋‘ ๊ตฌํ˜„ํ–ˆ๋‚˜์š”?
  • Gradle test๋ฅผ ์‹คํ–‰ํ–ˆ์„ ๋•Œ, ๋ชจ๋“  ํ…Œ์ŠคํŠธ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ํ†ต๊ณผํ–ˆ๋‚˜์š”?
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜๋‚˜์š”?

์–ด๋–ค ๋ถ€๋ถ„์— ์ง‘์ค‘ํ•˜์—ฌ ๋ฆฌ๋ทฐํ•ด์•ผ ํ• ๊นŒ์š”?

Hand๊ฐ€ ์นด๋“œ๋ฅผ ์ €์žฅํ•˜๋Š” ์—ญํ• ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, canLowerAceScore ๋ฉ”์„œ๋“œ์ฒ˜๋Ÿผ ๋ธ”๋ž™์žญ์˜ ๊ตฌ์ฒด์ ์ธ ์ ์ˆ˜ ๊ณ„์‚ฐ ๊ทœ์น™๊นŒ์ง€ ๋„ˆ๋ฌด ์ž์„ธํžˆ ์•Œ๊ณ  ์žˆ๋‹ค๋Š” ๋А๋‚Œ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง„ Hand์—์„œ ์ง์ ‘ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์ด ์‘์ง‘๋„ ์ธก๋ฉด์—์„œ๋Š” ์ข‹๊ฒ ์ง€๋งŒ, ์ฑ…์ž„์ด ๊ณผ๋„ํ•˜๋‹ค๊ณ  ๋А๊ปด์ง‘๋‹ˆ๋‹ค. ์ด ๋กœ์ง์„ ๊ทธ๋Œ€๋กœ Hand์— ๋‘๋Š” ๊ฒƒ์ด ๋งž์„๊นŒ์š”, ์•„๋‹ˆ๋ฉด ๋ณ„๋„์˜ ๊ฐ์ฒด(๊ณ„์‚ฐ๊ธฐ)๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚˜์€ ์„ค๊ณ„์ผ๊นŒ์š”? (7540373 ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค!)

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค โ˜บ๏ธ

Copy link

@pkeugine pkeugine left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

์•ˆ๋…•ํ•˜์„ธ์š” ํ˜„๋ฏธ๋ฐฅ, ๋ฏธ์…˜ ์ง„ํ–‰ํ•˜์‹œ๋А๋ผ ๊ณ ์ƒ ๋งŽ์œผ์…จ์Šต๋‹ˆ๋‹ค.

์ด๋ฒˆ ๋ฆฌ๋ทฐ๋Š”... ์กฐ๊ธˆ ๋ƒ‰์ •ํ•˜๊ฒŒ ๋ฆฌ๋ทฐํ–ˆ์–ด์š”.
๊ฐœ์ธ์ ์œผ๋กœ ํ˜„๋ฏธ๋ฐฅ์˜ ์‚ฌ์ดํด 1 ๊ตฌํ˜„์ด ์ •๋ง ์ข‹์•˜๊ธฐ ๋•Œ๋ฌธ์—
์ด๋ฒˆ์— ์•„์‰ฝ๋‹ค๊ณ  ๋А๋‚€ ๋ถ€๋ถ„๋“ค์„ ์ข€ ๊ฐ•ํ•˜๊ฒŒ ๊ฐ•์กฐํ•ด๋ดค์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๊ธฐ๋Šฅ์  ์š”๊ตฌ์‚ฌํ•ญ์€ ๋ชจ๋‘ ์ถฉ์กฑํ•œ ์ ์€ ์ •๋ง ์ข‹์•˜์Šต๋‹ˆ๋‹ค. ๐Ÿ‘
๋ฆฌ๋ทฐ๋ฅผ ํ•˜๋‹ค๋ณด๋ฉด ๋ฒ„๊ทธ๋“ค์„ ๋ฐœ๊ฒฌํ•˜๊ณค ํ•˜๋Š”๋ฐ,
ํ˜„์žฌ ํ˜„๋ฏธ๋ฐฅ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ์š”๊ตฌ์‚ฌํ•ญ์— ๋ถ€ํ•ฉํ•˜์ง€ ์•Š๋Š” ๋ฒ„๊ทธ๋Š” ์—†๋Š” ๋“ฏ ํ•˜๋„ค์š”.
(์ œ๊ฐ€ ๋ชป ๋ฐœ๊ฒฌํ–ˆ์„ ์ˆ˜๋„ ์žˆ๋Š”๋ฐ, ๊ทธ๋งŒํผ ์ž˜ํ–ˆ๋‹ค๋Š” ๊ฑฐ๊ฒ ์ฃ  ใ…‹ใ…‹ใ…‹)

๋‹ค์‹œ ๊ฐ•์กฐํ•œ ๋‚ด์šฉ๋“ค๋กœ ๋Œ์•„๊ฐ€๋ณด์ž๋ฉด
์ œ๊ฐ€ ์ด๋ฒˆ์— ๊ฐ•์กฐํ•˜๊ณ  ์‹ถ์€ ์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค :

  • ์ฝ”๋“œ๊ฐ€ ํ˜„๋ฏธ๋ฐฅ์ด ์ž‘์„ฑํ•œ ๊ฒƒ์ธ์ง€ ์กฐ๊ธˆ ์˜๋ฌธ์ด ์ƒ๊น๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ๊ฐ•ํ•˜๊ฒŒ ๋งํ•˜๋Š”๊ฑด๊ฐ€ ์‹ถ๊ธฐ๋„ ํ•œ๋ฐ, ๋ณธ์ธ์ด ์ž‘์„ฑํ–ˆ๋‹ค๋ฉด ๋ฐœ์ƒํ•˜๊ธฐ ํž˜๋“  ๋ถ€๋ถ„๋“ค์ด ๋ช‡ ๊ฐ€์ง€ ๋ณด์˜€๊ฑฐ๋“ ์š”. ์ €ํฌ๊ฐ€ ๋ฆฌ๋ทฐํ–ˆ๋˜ ๋‚ด์šฉ๋“ค๋„ ์žˆ๊ณ ์š”. ์ด๋Ÿฐ ๋ถ€๋ถ„๋“ค์„ ์ž˜ ์ฑ™๊ฒจ์ฃผ์…”์•ผ ์•ž์œผ๋กœ ํฌ๋ฃจ-๋ฆฌ๋ทฐ์–ด ๊ด€๊ณ„๊ฐ€ ์•„๋‹Œ ํŒ€์›-ํŒ€์› ๊ฐ„์˜ ๋ฆฌ๋ทฐ ํ•  ๋•Œ ํ˜„๋ฏธ๋ฐฅ์ด ๋” ํ›Œ๋ฅญํ•œ ํผํฌ๋จผ์Šค๋ฅผ ๋ณด์—ฌ์ฃผ์‹ค ๋“ฏ ํ•ด์„œ ์ด๋ฒˆ์— ์ œ ์ƒ๊ฐ์„ ์ฟ ์…˜์–ด ์—†์ด ๋“œ๋Ÿฌ๋‚ด๋ดค์–ด์š”. ์ด ๋ถ€๋ถ„, ์ •๋ง ์ค‘์š”ํ•ด์š”. ๊ผญ ์ž˜ ์ฑ™๊ฒจ๋ด…์‹œ๋‹ค.
  • ์ฝ”๋“œ ์ „๋ฐ˜์— ๊ฑธ์ณ ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ๋†’์—ฌ๋ดค์œผ๋ฉด ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ์š”๊ตฌ์‚ฌํ•ญ์— ๋ถ€ํ•ฉํ•˜์ง€ ์•Š๋Š” ๋ฒ„๊ทธ๋Š” ์—†๋”๋ผ๋„, ์˜ˆ์ƒํ•˜์ง€ ๋ชปํ•œ ๋™์ž‘์ด๋‚˜ ๋ฒ„๊ทธ์— ์ทจ์•ฝํ•œ ๊ตฌ์กฐ๊ฐ€ ๋ช‡ ๊ฐ€์ง€ ๋ณด์˜€๊ฑฐ๋“ ์š”. ํ…Œ์ŠคํŠธ๊ฐ€ ์žˆ๋‹ค๋ฉด ์ด๋ฅผ ์‚ฌ์ „์— ๋ฐฉ์ง€ ํ•  ์ˆ˜ ์žˆ์ง€ ์•Š๋‚˜ ์‹ถ์–ด์š”!

๋ฆฌ๋ทฐ ํ™•์ธํ•ด๋ณด์‹œ๊ณ , ๊ถ๊ธˆ์ฆ์ด๋‚˜ ๋Œ€ํ™”ํ•˜๊ณ  ์‹ถ์€ ๋‚ด์šฉ์ด ์žˆ๋‹ค๋ฉด ๋ถ€๋‹ด ๊ฐ–์ง€ ๋ง๊ณ  DM ๋˜๋Š” ์ฝ”๋ฉ˜ํŠธ ๋‚จ๊ฒจ์ฃผ์„ธ์š”. ์ œ๊ฐ€ ์ž˜๋ชป ํŒŒ์•…ํ•œ ๋‚ด์šฉ์ด ์žˆ๊ฑฐ๋‚˜ ๋™์˜ํ•˜์ง€ ์•Š๋Š” ๋‚ด์šฉ์ด ์žˆ๋‹ค๋ฉด ํ˜„๋ฏธ๋ฐฅ๋„ ์ œ๊ฒŒ ๊ฐ•ํ•˜๊ฒŒ ๋ฐ˜๋ฐ•ํ•˜์…”๋„ ์ข‹์Šต๋‹ˆ๋‹ค. :)

๋‚จ์€ ์‚ฌ์ดํด ๊ฐ™์ด ํ™”์ดํŒ…ํ•ด๋ณด์ฃ .
ํ•ดํ”ผํ•ดํ‚นํ•˜์„ธ์š”!!! ๐Ÿ™‚ ๐Ÿ™‚ ๐Ÿ™‚

@@ -1,24 +1,20 @@
package controller;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

README๊ฐ€ ์•„์ง ์‚ฌ์ดํด1 ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ค‘์‹ฌ์ด๋ผ ์ด๋ฒˆ ์‚ฌ์ดํด์—์„œ ์ถ”๊ฐ€๋œ ๋ฐฐํŒ… ๊ทœ์น™์ด ์ž˜ ์•ˆ ๋ณด์ด๋„ค์š”.

๋ฌธ์„œ ๊ด€๋ฆฌ๋„ ๊ฝค๋‚˜ ์ค‘์š”ํ•œ ์ผ์ด๋‹ˆ, ํ•œ ๋ฒˆ ์—…๋ฐ์ดํŠธ ํ•ด๋ณผ๊นŒ์š”?

import java.util.EnumMap;
import java.util.Map;

public class GameResult {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

์ด๋ฒˆ ์‚ฌ์ดํด์˜ ์‹ค์ œ ์ถœ๋ ฅ ํ๋ฆ„์—์„œ๋Š” GameResult๊ฐ€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋„ค์š”.
์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ์ฝ”๋“œ๋Š” ์ œ๊ฑฐํ•ด๋ณด๋ฉด ์–ด๋–จ๊นŒ์š”?

์ฝ”๋“œ๋ฒ ์ด์Šค๊ฐ€ ์ปค์ง€๊ณ , ํ”„๋กœ์ ํŠธ ์•„ํ‚คํ…์ณ๊ฐ€ ๋ณต์žกํ•ด์ง€๋ฉด intelliJ ๊ฐ€ '์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ' ์œผ๋กœ ์ธ์‹ํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์žˆ๋”๋ผ๋„ ์‹ค์ œ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ข…์ข… ์žˆ์–ด์š”. ๊ทธ ์ƒํ™ฉ์—์„œ๋Š” ์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ–ˆ๋‹ค๊ฐ€๋Š” ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์‚ฌ์ด๋“œ ์ดํŽ™ํŠธ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ์–ด์„œ ๋งˆ์Œ ํŽธํžˆ ์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ๊ฐ€ ์–ด๋ ค์›Œ์ง€๋Š”๋ฐ์š”,

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๋”๋”์šฑ ๊ฐœ๋ฐœํ•˜๋Š” ๊ณผ์ • ์•ˆ์—์„œ ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ๋ฅผ ์‚ญ์ œํ•˜๊ณ ,
์ด๋ ‡๊ฒŒ ๊ทœ๋ชจ๊ฐ€ ๋„ˆ๋ฌด ํฌ์ง€ ์•Š์•„์„œ ์ฝ”๋“œ ์‚ฌ์šฉ์ฒ˜๋ฅผ ๋ฐ”๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์„ ๋•Œ
๊ด€๋ฆฌํ•ด์ฃผ๋Š” ์Šต๊ด€์„ ๊ฐ€์ ธ๋ณด๋ฉด ์ข‹์•„์š” :)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

๋ฆฌ๋ทฐ๋ฅผ ํ•˜๋ฉฐ ์ „์ฒด์ ์œผ๋กœ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ํด๋ž˜์Šค๋“ค, ๋กœ์ง, ๊ทธ๋ฆฌ๊ณ  ์ƒ์ˆ˜๊นŒ์ง€ ๋‹ค์–‘ํ•˜๊ฒŒ ๋ณด์—ฌ์š”.
ํ”„๋กœ์ ํŠธ ์ „๋ฐ˜์ ์œผ๋กœ ๋‹ค ํ™•์ธํ•ด๋ณด๊ณ  ๋ถˆํ•„์š”ํ•œ ๊ฒƒ๋“ค์€ ์ œ๊ฑฐํ•ด์ฃผ์„ธ์š”.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ํด๋ž˜์Šค๋‚˜ ๋กœ์ง๋“ค์„ ๋‹ค์‹œ ํ™•์ธํ•˜๊ณ  ์ •๋ฆฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

Comment on lines +58 to +66
public Outcome opposite() {
if (this == WIN) {
return LOSE;
}
if (this == LOSE) {
return WIN;
}
return DRAW;
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

์ง€๊ธˆ์€ opposite()๋ฅผ ์“ฐ๋Š” ๊ฒฝ๋กœ๊ฐ€ ์ฃฝ์–ด ์žˆ์–ด์„œ ๋ฒ„๊ทธ๊ฐ€ ๋“œ๋Ÿฌ๋‚˜์ง€ ์•Š์ง€๋งŒ, BLACKJACK_WIN.opposite()๊ฐ€ DRAW๋กœ ๊ณ„์‚ฐ๋˜๋„ค์š”.

์œ„์˜ ์ฝ”๋ฉ˜ํŠธ๋ฅผ ๋ฐ˜์˜ํ•˜๋ฉด ํ•ด๋‹น ๋ฉ”์„œ๋“œ๋„ ์‚ญ์ œ๋  ๋“ฏ ํ•œ๋ฐ,
๊ทธ๋ž˜๋„ ์•ž์œผ๋กœ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ํ•  ๋•Œ ๋†“์นœ ๋ถ€๋ถ„์€ ์—†๋Š”์ง€ ๊ผญ ํ™•์ธํ•ด์ฃผ์„ธ์š”.

์ด๋Ÿฐ ๋ฒ„๊ทธ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ป๊ฒŒ ํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š”์ง€๋„ ํ•œ ๋ฒˆ ๊ณ ๋ฏผํ•˜๊ณ  ๊ฐ™์ด ์–˜๊ธฐํ•ด๋ณผ๊นŒ์š”?
์˜ˆ๋ฅผ ๋“ค์–ด opposite ์˜ ๊ตฌํ˜„ ๋ฐฉ์‹์„ ๋ฐ”๊พธ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์„ ๊ฒƒ ๊ฐ™์•„์š”.
(์—†์–ด์ง€๊ฒ ์ง€๋งŒ ๊ทธ๋ž˜๋„ ๊ณ ๋ฏผํ•ด๋ณด์•„์š”.)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ํ•ด๋‹น ์ฝ”๋ฉ˜ํŠธ์™€๋„ ์—ฐ๊ด€์ด ์žˆ๋Š” ๋‚ด์šฉ์ด๋ผ ๋Œ€๋Œ“๊ธ€๋กœ ๋‚จ๊น๋‹ˆ๋‹ค.

domain ํŒจํ‚ค์ง€์˜ ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ๋†’์—ฌ๋ณด๋ฉด ์–ด๋–จ๊นŒ์š”?
ํ˜„์žฌ public ์œผ๋กœ ์—ด๋ ค์žˆ๋Š” ๋ฉ”์„œ๋“œ๋ผ๋„ ํ…Œ์ŠคํŠธ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋Š”๋ฐ,
domain ์€ ํŠนํžˆ๋‚˜ ํ…Œ์ŠคํŠธ๊ฐ€ ์ค‘์š”ํ•œ ํŒจํ‚ค์ง€๊ฑฐ๋“ ์š”.

Comment on lines 5 to 11
public final class CardSuitMap {
private static final Map<Integer, String> SUIT_MAP = Map.of(
0, "์ŠคํŽ˜์ด๋“œ",
1, "ํ•˜ํŠธ",
2, "๋‹ค์ด์•„๋ชฌ๋“œ",
3, "ํด๋กœ๋ฒ„"
);

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#933 (comment)

์–ด๋А ์ˆœ๊ฐ„ ์ข‹์•˜๋˜ ๋ถ€๋ถ„์ด ์‚ฌ๋ผ์ง€๊ณ  ๋ฆฌ๋ทฐํ–ˆ๋˜ ์ง€์–‘ํ•ด์•ผ ํ•  ๋ฐฉ์‹์ด ์ ์šฉ๋˜์—ˆ๋„ค์š” ๐Ÿค”
์ด์ „ PR ์—์„œ ๋ฐ˜์˜๋œ ๋ถ€๋ถ„์ด๊ธด ํ•œ๋ฐ, ์ง€๊ธˆ ๋ฐœ๊ฒฌํ–ˆ์–ด์š”.

ํ˜„๋ฏธ๋ฐฅ์ด ์ง์ ‘ ์ง€์šฐ์‹  ๊ฒƒ์ด ์•„๋‹ˆ๋ผ๋ฉด ๋ฌด์–ธ๊ฐ€ ์ฝ”๋“œ์— ๋ณ€ํ™”๋ฅผ ์ค„ ๋•Œ ๊ผญ ๋ณธ์ธ์ด ๋‹ค ํŒŒ์•…ํ•˜๊ณ  ๋ฐ˜์˜ํ•ด์ฃผ์„ธ์š”.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

๊ทธ๋ฆฌ๊ณ  private ์ƒ์„ฑ์ž๊ฐ€ ํ•„์š”ํ•œ ๊ณณ์ด ๋‹ค๋ฅธ ๊ณณ์—๋„ ์žˆ๋Š”์ง€ ํ”„๋กœ์ ํŠธ ์ „์ฒด๋ฅผ ํ•œ ๋ฒˆ ํ™•์ธํ•ด๋ณด๊ณ , ์ถ”๊ฐ€ํ•ด๋ณด์ฃ !

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image image

ํ•ด๋‹น ๋ถ€๋ถ„์€ ์ œ๊ฐ€ ์ง์ ‘ ์‚ญ์ œํ•œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค..! ์ง€์‹์ด ๋ถ€์กฑํ•ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค..

CardSuitMap์ด static ๋ฉ”์„œ๋“œ๋งŒ ๊ฐ€์ง€๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ์ฒด ์ƒ์„ฑ ์—†์ด ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ ์„ ๋ชฐ๋ž์Šต๋‹ˆ๋‹ค. private CardSuitMap() ์ƒ์„ฑ์ž๊ฐ€ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ์ฝ”๋“œ๋ผ๊ณ  ์ƒ๊ฐํ•ด ๋ฆฌํŒฉํ† ๋ง ๊ณผ์ •์—์„œ ์‚ญ์ œํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ”ผ๋“œ๋ฐฑ ์ดํ›„ ์ง์ ‘ ๊ฐ์ฒด ์ƒ์„ฑ์„ ์‹œ๋„ํ•ด ๋ณด๋ฉฐ ํ™•์ธํ•ด๋ณด๋‹ˆ, ์ƒ์„ฑ์ž๊ฐ€ public ์ƒํƒœ์—์„œ๋Š” new CardSuitMap()์ด ๊ฐ€๋Šฅํ•ด ์˜๋ฏธ ์—†๋Š” ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค์—์„œ๋Š” ์ด๋Ÿฌํ•œ ๊ฐ์ฒด ์ƒ์„ฑ์„ ๋ง‰๊ธฐ ์œ„ํ•ด private ์ƒ์„ฑ์ž๋ฅผ ๋‘์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ๋„ ํ•จ๊ป˜ ์ดํ•ดํ–ˆ์Šต๋‹ˆ๋‹ค!! ๋‹ค์‹œ private CardSuitMap()์„ ์ถ”๊ฐ€ํ•ด ๊ฐ์ฒด ์ƒ์„ฑ์„ ๋ง‰๋„๋ก ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. (a4ed4b0 ์ปค๋ฐ‹) ์ข‹์€ ํ”ผ๋“œ๋ฐฑ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

Comment on lines +26 to +29
@Override
public String toString() {
return String.valueOf(amount);
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Money ํด๋ž˜์Šค์˜ toString() ์€ ์‚ฌ์šฉ์ฒ˜๊ฐ€ ๋ณด์ด์ง€ ์•Š์•„์š”.
intelliJ ๋‚ด์—์„œ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ํ‘œ์‹œ๊ฐ€ ๋‚˜ํƒ€๋‚˜์ง€๋Š” ์•Š์ง€๋งŒ, ์ œ๊ฐ€ ๋ดค์„ ๋• ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ๋„ค์š”.

ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ๋„ฃ์–ด์ฃผ์‹  ์ด์œ ๊ฐ€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.
๋งŒ์•ฝ ์˜๋„ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์ œ๊ฑฐํ•ด์ฃผ์„ธ์š”.

๋” ๋‚˜์•„๊ฐ€ toString ์€ ์–ด๋–ค ๊ฒฝ์šฐ์— override ํ•ด์„œ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์„์ง€ ๊ณ ๋ฏผํ•ด๋ณด์ฃ .

public class Deck {
private final List<Card> cards;

public record Deck(List<Card> cards) {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Deck ๋„ record๋กœ ๋ฐ”๊พธ์…จ๊ตฐ์š”?

์—ฌ๊ธฐ์„œ๋„ ์žฌ๋ฐŒ๋Š” ์ฃผ์ œ๊ฐ€ ์žˆ๋Š”๋ฐ์š”,
ํ˜„์žฌ ๋ฑ ์ƒ์„ฑ์„ ์œ„ํ•ด ํ•„์š”ํ•œ List<Card> cards ๋Š” ๋ฑ์ด ๋งŒ๋“ค์–ด์ง„ ์ดํ›„์—๋„ ์™ธ๋ถ€์—์„œ ๊ฐ’์„ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์–ด์š”.
์ด๋ฅผ ๋ฐฉ์ง€ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ์—†์„๊นŒ์š”?

(๊ผญ ๋„์ž…ํ•˜์ง€๋Š” ์•Š์•„๋„ ๋˜์ง€๋งŒ, ๋„์›€์ด ๋  ์ฃผ์ œ์˜ˆ์š”.)

Comment on lines 22 to 32
public Score calculateScore() {
int totalScore = 0;
int aceCount = 0;
for (Card card : cards) {
totalScore += card.getScore();
if (card.isAce()) {
aceCount++;
}
}

int totalScore = cards.stream()
.mapToInt(Card::getScore)
.sum();
int aceCount = (int) cards.stream()
.filter(Card::isAce)
.count();
while (canLowerAceScore(totalScore, aceCount)) {
totalScore -= 10;
aceCount--;
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Q. Hand ์˜ ์ฑ…์ž„์ด ๊ณผ๋„ํ•˜๋‹ค๊ณ  ๋А๊ปด์ง€๋Š”๋ฐ, ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„์ง€

์ €๋Š” Hand๊ฐ€ ์ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉํ–ฅ์ด ๊ฝค ์ž์—ฐ์Šค๋Ÿฝ๋‹ค๊ณ  ๋А๊ผˆ์–ด์š”.
์•ž์„œ ์žฌ๋ฃŒ์™€ ์š”๋ฆฌ์— ๋Œ€ํ•œ ๋น„์œ ๊ฐ€ ์—ฌ๊ธฐ์—๋„ ์ ์šฉ๋  ๋“ฏ ํ•œ๋ฐ์š”,
์žฌ๋ฃŒ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฐ์ฒด๊ฐ€ ์š”๋ฆฌ๋ฅผ ๋‹ค ํ•˜๋Š”๊ฒŒ ๋งž๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

util ์„ฑ ๋กœ์ง์ด ์•„๋‹ˆ๋ผ๋ฉด ๊ตณ์ด ๊ทธ ์žฌ๋ฃŒ๋ฅผ ๋‹ค๋ฅธ ํด๋ž˜์Šค๋กœ ์˜ฎ๊ธธ ํ•„์š”๊ฐ€ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ด์š”.
์—ฌ๊ธฐ์„œ util ์„ฑ ๋กœ์ง์ด๋ž€, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์ถœ์‹œํ•ด๋„ ๋ ๋งŒํผ ๋ฒ”์šฉ์ ์ธ ๊ฒƒ๋“ค์ด๋ผ๊ณ  ์ €๋Š” ๋ด์š”.
์˜ˆ๋ฅผ ๋“ค์–ด... ์‚ฌ์šฉ์ž ์ด๋ฆ„ ์•ˆ์—์„œ ใ„ฑ ์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ์–ด์ฃผ๋Š” ๋กœ์ง ๊ฐ™์€๊ฑฐ์š” ใ…‹ใ…‹ใ…‹

์ ์ˆ˜๊ฐ€ ๊ฒฐ๊ตญ ์†ํŒจ ์ž์ฒด์—์„œ๋งŒ ๊ฒฐ์ •๋˜๋‹ˆ๊นŒ, ๊ณ„์‚ฐ๊ธฐ๋ฅผ ๋”ฐ๋กœ ๋‘๊ธฐ๋ณด๋‹ค Hand๊ฐ€ ์ž๊ธฐ ์ƒํƒœ๋ฅผ ์„ค๋ช…ํ•˜๋Š” ์ชฝ์ด ์ง€๊ธˆ ๋ฏธ์…˜ ๋ฒ”์œ„์—์„œ๋Š” ๋” ์‘์ง‘๋„ ์žˆ๊ฒŒ ์ฝํžˆ๋Š” ๊ฒƒ ๊ฐ™๋„ค์š”. ์ง€๊ธˆ์ด ๋”ฑ ์ข‹์•„์š” ๐Ÿ‘

return Arrays.stream(input.split(","))
.map(String::trim)
.map(Player::new)
.collect(Collectors.toList());

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
.collect(Collectors.toList());
.toList();

์–ด๋–ค ์ฐจ์ด๊ฐ€ ์žˆ๋Š”์ง€ ํ•œ ๋ฒˆ ์•Œ์•„๋ณผ๊นŒ์š”?

import java.util.List;
import java.util.stream.Collectors;

public class NameParser {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

์ด๊ฑด ๊ฐœ์ธ์ ์ธ ๊ถ๊ธˆ์ฆ์ธ๋ฐ, ์ค‘๋ณต ์ด๋ฆ„์— ๋Œ€ํ•œ ์ œํ•œ์— ๋Œ€ํ•ด ํ˜„๋ฏธ๋ฐฅ์˜ ์ƒ๊ฐ์€ ์–ด๋–ค๊ฐ€์š”?
๊ฐ™์€ ์ด๋ฆ„์„ ํ—ˆ์šฉํ•˜๋ฉด ์ข‹์„์ง€, ์•„๋‹ˆ๋ฉด ๋ง‰๋Š”๊ฒŒ ์ข‹์„์ง€ ํ•œ ๋ฒˆ ๊ณ ๋ฏผํ•ด๋ณด์ฃ !

๋งŒ์•ฝ ๊ฐ™์€ ์ด๋ฆ„์˜ player ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด, ๊ทธ ๋‘˜์„ ๊ฒŒ์ž„์ƒ์—์„œ ์–ด๋–ป๊ฒŒ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์„์ง€๋„ ๊ณ ๋ฏผํ•ด๋ณด๋ฉด ์ข‹๊ฒ ์–ด์š”. ๊ทธ๋ž˜์•ผ ๋ˆ„๊ฐ€ ์ด๊ธฐ๊ณ , ๋น„๊ธฐ๊ณ , ์กŒ๋Š”์ง€์— ๋”ฐ๋ผ (์ง€๊ธˆ์€ ์‹ค์ œ๋กœ ๋ˆ์„ ๋ถ„๋ฐฐํ•˜์ง„ ์•Š์ง€๋งŒ) ์‹ค์ œ ์ด๋“๊ณผ ์†ํ•ด๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์„ํ…Œ๋‹ˆ๊นŒ์š”.

๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ ๊ทธ๋ƒฅ ์ค‘๋ณต ์ด๋ฆ„์„ ๋ง‰๋Š”๊ฑฐ๊ฒ ๋„ค์š” ใ…‹ใ…‹ใ…‹

Comment on lines +34 to +48
private static Outcome decideByScore(Score playerScore, Score dealerScore) {
if (playerScore.isBust()) {
return LOSE;
}
if (dealerScore.isBust()) {
return WIN;
}
if (playerScore.getGameScore() > dealerScore.getGameScore()) {
return WIN;
}
if (playerScore.getGameScore() < dealerScore.getGameScore()) {
return LOSE;
}
return DRAW;
}
Copy link

@pkeugine pkeugine Mar 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#933 (comment)

๋ฉ”์„œ๋“œ ๊ธธ์ด๊ฐ€ 10์ค„์ด ๋„˜๋Š” ๋ฉ”์„œ๋“œ๋“ค์ด ์กฐ๊ธˆ์”ฉ ๋ณด์ด๋Š”๋ฐ,
์•„๋ฌด๋ž˜๋„ ์š”๊ตฌ์‚ฌํ•ญ์ด ์žˆ๋‹ค๋ณด๋‹ˆ ํ•œ ๋ฒˆ ์ง€์ผœ๋ณด๋Š”๊ฑด ์–ด๋–จ๊นŒ์š”?

(๋นˆ์ค„ ํฌํ•จ 10์ค„์€ ํ•ด๋‹น ์ฝ”๋ฉ˜ํŠธ๊ฐ€ ๋งํ•˜๋Š” '10์ค„์ด ๋„˜๋Š” ๋ฉ”์„œ๋“œ'์— ํ•ด๋‹นํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants