Skip to content

[๐Ÿš€ ์‚ฌ์ดํด1 - ๋ฏธ์…˜ (๋ณด๋“œ ์ดˆ๊ธฐํ™” + ๊ธฐ๋ฌผ ์ด๋™)] ์ œ์ด์ฝฅ ๋ฏธ์…˜ ์ œ์ถœํ•ฉ๋‹ˆ๋‹ค.#268

Open
khcho96 wants to merge 92 commits intowoowacourse:khcho96from
khcho96:step1

Conversation

@khcho96
Copy link
Copy Markdown

@khcho96 khcho96 commented Mar 31, 2026

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

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

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

์›จ์ง€ ์•ˆ๋…•ํ•˜์„ธ์š”!
์ดˆ๊ธฐ ์„ค๊ณ„์™€ ๊ธฐ๋ฌผ ์ด๋™์— ๋Œ€ํ•œ ์ „๋žต ํŒจํ„ด์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์œผ๋กœ PR์ด ๋งŽ์ด ๋Šฆ์–ด์กŒ์Šต๋‹ˆ๋‹ค.
ํŽ˜์–ด์˜ ๋„์›€์œผ๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ์ธ์ง€๋ผ ์•„์ง ์ดํ•ดํ•˜๋Š” ๊ณผ์ •์ธ ์ฝ”๋“œ๊ฐ€ ์กด์žฌํ•˜์ง€๋งŒ, ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ›์œผ๋ฉด์„œ ๋ฐฐ์›Œ๊ฐ€๋ ค๊ณ  ๋ฆฌ๋ทฐ ์š”์ฒญํ–ˆ์Šต๋‹ˆ๋‹ค.
์ž˜ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค:)

1. ๊ธฐ๋ฌผ ์ด๋™ ์ „๋žต ํŒจํ„ด ์ ์šฉ

๊ธฐ๋ฌผ ์ด๋™ ์ „๋žต ๊ตฌํ˜„ ๊ณผ์ •์—์„œ ์ „๋žตํŒจํ„ด์„ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์„ค๊ณ„๊ฐ€ ๋– ์˜ค๋ฅด์ง€ ์•Š์•„ ๊ต‰์žฅํžˆ ๋งŽ์€ if๋ฌธ๊ณผ while๋ฌธ์œผ๋กœ ๊ตฌํ˜„ํ•ด depth์™€ ๋ฉ”์„œ๋“œ ๊ธธ์ด๊ฐ€ ๊ธธ์–ด์กŒ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์ƒ, ํ•˜, ์ขŒ, ์šฐ ๋“ฑ์˜ ์ขŒํ‘œ ์ฆ๊ฐ๊ฐ’์„ Direction Enum์œผ๋กœ ๋„์ถœํ•˜๊ณ , ๊ณ ์ •์ ์ธ ๊ณตํ†ต ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ OneStepStrategy, SlideStrategy, JumpSlideStrategy, SequenceStrategy๋กœ ์ถ”์ƒํ™”ํ•˜์—ฌ ๊ธฐ๋ฌผ์— ์ฃผ์ž…ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํŽ˜์–ด์˜ ๋„์›€์„ ํ†ตํ•ด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

2. getter ์‚ฌ์šฉ

Board, Player, Position์—์„œ getter๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”๋ฐ, getter์—†์ด ๊ตฌํ˜„ํ•  ๋ฐฉ๋ฒ•์„ ์ฐพ์ง€ ๋ชปํ•ด ์šฐ์„  ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

khcho96 added 29 commits April 2, 2026 13:31
Copy link
Copy Markdown

@sihyung92 sihyung92 left a comment

Choose a reason for hiding this comment

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

์•ˆ๋…•ํ•˜์„ธ์š” ์ œ์ด์ฝฅ, ๋ฆฌ๋ทฐ์–ด ์›จ์ง€์ž…๋‹ˆ๋‹ค.

๋ฆฌ๋ทฐ๋“ค์€ ์ž˜ ๋ฐ˜์˜๋˜์—ˆ๋„ค์š”. ๋ชจํ˜ธํ–ˆ๋˜ ๋ฆฌ๋ทฐ๋“ค์— ๋Œ€ํ•ด์„  ๋‹ค์‹œ ์ฝ”๋ฉ˜ํŠธ๋ฅผ ๋‚จ๊ฒผ์œผ๋‹ˆ ํ™•์ธํ•ด๋ณด์…”์š”.

๋ฆฌ๋ทฐ ์‹œ์ ์— submit ํ•œ ๊ฒƒ๊ณผ ๊ธฐ์กด ๋ฆฌ๋ทฐ์— ๋Œ“๊ธ€๋กœ ๊ทธ๋•Œ๊ทธ๋•Œ ๋‹จ ์ฝ”๋ฉ˜ํŠธ๊ฐ€ ํ˜ผ์žฌ๋˜์–ด ์žˆ์œผ๋‹ˆ (์ฃ„์†ก..) ํ™•์ธํ•ด๋ณด์‹œ๊ณ  ๋˜ ์š”์ฒญ ์ฃผ์…”์š”. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

}

@Override
protected List<Position> filterValidPositions(Position current, List<Path> paths, BoardReader board) {
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

์กฐ๊ธˆ ๋” ๊ตฌ์ฒด์ ์ธ ๋ฆฌ๋ทฐ๋ฅผ ๋“œ๋ฆฌ์ž๋ฉด, board์™€ Piece์˜ ์–‘๋ฐฉ์ฐธ์กฐ๊ฐ€ ์กฐ๊ธˆ ๋ถˆํŽธํ•ด์š”.

๋ฉ”์„œ๋“œ ๋‚ด ๋กœ์ปฌ ๋ณ€์ˆ˜๋กœ ์„ ์–ธํ•˜๊ฑฐ๋‚˜, ๋ฉ”์„œ๋“œ ์‹œ๊ทธ๋‹ˆ์ฒ˜์—์„œ ์ธ์ž๋‚˜ ์‘๋‹ต ํ˜•ํƒœ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ์€ ์•ฝํ•œ ์˜์กด์ด๊ณ 
ํ•„๋“œ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ์€ ๊ฐ•ํ•œ ์˜์กด์— ํ•ด๋‹นํ•˜๋Š”๋ฐ์š”

๊ฐ์ฒด ๋‚ด ์—์„œ board์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ๋งŽ์ด ํ•„์š”๋กœ ํ•œ๋‹ค๋Š” ๊ฑด ์˜์กด๊ด€๊ณ„๋ฅผ ๋ฐ”๊พธ์–ด์•ผ ํ•œ๋‹ค๋Š” ์‹ ํ˜ธ์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.
(๊ฐ์ฒด์ง€ํ–ฅ์€ ํ”„๋กœ์„ธ์Šค์™€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ•„์š”๋กœํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํด๋ž˜์Šค๋ผ๋Š” ํ˜•ํƒœ๋กœ ๋ชจ์œผ๋Š” ๊ฑฐ๋‹ˆ๊นŒ์š”)

๊ทธ๋Ÿฐ๋ฐ Piece์— Board๋ฅผ ํ•„๋“œ๋กœ ๋†“๋Š” ์ˆœ๊ฐ„, ์–‘๋ฐฉ ์ฐธ์กฐ๊ฐ€ ๋˜์ฃ  (Board๋Š” piece์˜ ๋งต, Piece๋Š” Board๋ฅผ ์ฐธ์กฐ..)
๋ฌผ๋ก  ์ง€๊ธˆ์ฒ˜๋Ÿผ ๋ฉ”์„œ๋“œ์— ์ธ์ž ํ˜•ํƒœ๋กœ ์žˆ๋Š” ์ˆœ๊ฐ„ ์–‘๋ฐฉ ์ฐธ์กฐ์ž…๋‹ˆ๋‹ค๋งŒ.

๋Œ€๋ถ€๋ถ„์˜ filterValidPositions์—์„œ board๋ฅผ ํ•„์š”๋กœ ํ•˜๋Š” ์ด์œ ๋Š” position์— ๋Œ€ํ•œ ์ ์œ ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•จ์ธ ๊ฑธ๋กœ ๋ณด์ด๋Š”๋ฐ, piece๋Š” position๊ณผ move strategy๋ฅผ ๊ฐ€์ง€๊ณ  Path ๊นŒ์ง€๋งŒ ์ƒ์‚ฐํ•˜๊ณ ,
position์„ ์ด๋™ ํ•  ๋•Œ ์ด๋ฏธ ๊ฐ์ฒด๊ฐ€ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋Š” Position๊ณผ Piece์˜ ๋งตํ•‘์„ ๊ด€๋ฆฌํ•˜๋Š” board์—์„œ ํ•˜๋Š”๊ฒŒ ๊ฐ ๊ฐ์ฒด์˜ ์ฑ…์ž„์œผ๋กœ (ํ•„๋“œ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋“ค์„ ๋ณด์•˜์„ ๋•Œ) ์ ์ ˆํ• ๊ฑฐ ๊ฐ™์•„์š”.
-> ์ด "์ฑ…์ž„"์ด๋ผ๋Š” ๊ฑด ์ œ์ด์ฝฅ์˜ ํด๋ž˜์Šค์˜ ๋ถ„ํ•  ์ˆ˜์ค€๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ๋ฐฐ์น˜ํ–ˆ๋ƒ๋ฅผ ๋ณด๊ณ  ๋– ์˜ฌ๋ฆฐ ๊ฒƒ์ด์–ด์š”. ์ฑ…์ž„์˜ ๋ถ„๋ฐฐ๋ผ๋Š” ๊ฑด ์ •๋‹ต์ด ์žˆ๋Š” ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ, ์–ด๋–ค ํ–‰์œ„๊ฐ€ ํ•„์š”ํ•˜๊ณ  ๋ˆ„๊ฐ€ ํ•  ๊ฒƒ์ด๋ฉฐ ๋ฐ์ดํ„ฐ๋Š” ์–ด๋””์— ๋‘์–ด์•ผ ํ• ๊นŒ? ๋ผ๋Š” ๋ฐœ์ƒ ๋์— ๋ฐฐ์น˜๋˜๋Š” ๊ฒƒ์ด์—์š”.

์ด๋ฒˆ ๋ฏธ์…˜์˜ ๊ฐ€์žฅ ์ค‘์ถ”์ธ ํ•ต์‹ฌ ๊ตฌ์กฐ์— ๋Œ€ํ•œ ๋ถ€๋ถ„์ด๊ณ , ์ œ์ด์ฝฅ์˜ ๊ณ ๋ฏผ์ด ๋‹ด๊ฒจ์žˆ๋Š” ๋ถ€๋ถ„์ด๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๊ฐ์ด ๋‹ค๋ฅด์‹œ๋‹ค๋ฉด ๋ฐ˜๋“œ์‹œ ๋ฐ˜์˜ํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค.
ํ•œ๋ฒˆ ๊ณ ๋ฏผํ•ด๋ณด์‹œ๊ณ  ๋ฐ˜์˜์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•ด๋ณด์„ธ์š”.

Comment on lines +91 to +94
@Override
public String toString() {
return "ํฌ";
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

๋„ค๋„ค, toString์€ ๋ฌด์กฐ๊ฑด ์ œ๊ณต๋˜๋Š” ์ฝ”๋“œ์ธ๋ฐ ๊ธฐ๋ณธ์ œ๊ณต๋˜๋Š” hashcode๋Š” ์“ธ๋ชจ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ํ•ญ์ƒ ์žฌ์ •์˜๋ฉ๋‹ˆ๋‹ค. ๊ทผ๋ฐ toString ๋ฉ”์„œ๋“œ์˜ ๋ชจํ˜ธ์„ฑ์œผ๋กœ ์ธํ•ด (๋ง์”€์ฃผ์‹ ๊ฒƒ์ฒ˜๋Ÿผ '์ฝ๊ธฐ ์‰ฌ์šด ํ˜•ํƒœ' ๋ผ๋Š”๊ฒŒ ์–ผ๋งˆ๋‚˜ ๋ชจํ˜ธํ•œ๊ฐ€์š”)
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋งค ๋ฒ„์ „๋งˆ๋‹ค ํ•˜์œ„ํ˜ธํ™˜์„ ์ง€ํ‚ค์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

์• ์ดˆ์— ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋งŒ๋“  toString์„ ๋กœ์ง์— ์“ธ ๋•Œ๋Š” ์ด ์ง€์ ์„ ๊ณ ๋ คํ•ด ๋งค์šฐ ์‹ ์ค‘ํ•˜๊ฒŒ ์‚ฌ์šฉํ•ด์•ผํ•˜๋ฉฐ, (์‹œ๊ฐ„๊ณผ ๊ด€๋ จ๋œ java SDK ํด๋ž˜์Šค ๋“ค์€ ISO ๊ทœ์•ฝ์— ๋งž์ถฐ toString์„ ์‘๋‹ตํ•˜๋Š”๋ฐ, ์ด๋ ‡๊ฒŒ ์ •ํ•ด์ง„ ํฌ๋งท์œผ๋กœ ์•ฝ์ •๋œ ํด๋ž˜์Šค์˜ ๊ฒฝ์šฐ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ๋ฒ„์ „์— ๋”ฐ๋ผ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ ์˜ˆ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ๊นŒ์š”.)

์Šค์Šค๋กœ๋„ ๊ฐœ๋ฐœํ•  ๋•Œ toString์ด ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๋„๋ฉ”์ธ ์–‘์‹์œผ๋กœ ์ œ๊ณตํ•˜๊ฒ ๋‹ค๋Š” ํ™•์‹ ์ด ์—†์œผ๋ฉด toString์„ ๋น„์ฆˆ๋‹ˆ์Šค ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค. (์ด ํ™•์‹ ์ด๋ผ๋Š”๊ฑด ์ด ๊ฐ์ฒด ์œ ์ง€๋ณด์ˆ˜๋ฅผ 3๋…„ ํ•ด๋„ toString์„ ๋ณ€์น˜์•Š๊ณ  ๊ทธ๋Œ€๋กœ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค ๊ธ‰์ž…๋‹ˆ๋‹ค)

import java.util.List;
import parser.Command;

public enum Formation {
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

๊ธฐ์กด๋ณด๋‹ค ํ›จ์”ฌ ๋งˆ์Œ์— ๋“ญ๋‹ˆ๋‹ค๋งŒ, ๋Œ€์‹  parser์˜ command๋ฅผ ์˜์กดํ•˜๊ณ  ์žˆ๋Š” ์ ์ด ์•„์‰ฝ์Šต๋‹ˆ๋‹ค. command๊ฐ€ Formation์„ ์•Œ๊ณ  Formation์€ command๋ฅผ ๋ชจ๋ฅด๊ฒŒ ํ•ด์ฃผ์„ธ์š”.



@ParameterizedTest
@ValueSource(ints = {-1, -2, 9, 10, 100})
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

๊ฒฝ๊ณ„๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ํ•œ ํ…Œ์ŠคํŠธ๊ฐ€ ์ž˜ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”๊ฒŒ ์ข‹์Šต๋‹ˆ๋‹ค.

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.

3 participants