[๐ ์ฌ์ดํด1 - ๋ฏธ์ (๋ณด๋ ์ด๊ธฐํ + ๊ธฐ๋ฌผ ์ด๋)] ์ ์ด์ฝฅ ๋ฏธ์ ์ ์ถํฉ๋๋ค.#268
[๐ ์ฌ์ดํด1 - ๋ฏธ์
(๋ณด๋ ์ด๊ธฐํ + ๊ธฐ๋ฌผ ์ด๋)] ์ ์ด์ฝฅ ๋ฏธ์
์ ์ถํฉ๋๋ค.#268khcho96 wants to merge 92 commits intowoowacourse:khcho96from
Conversation
sihyung92
left a comment
There was a problem hiding this comment.
์๋ ํ์ธ์ ์ ์ด์ฝฅ, ๋ฆฌ๋ทฐ์ด ์จ์ง์ ๋๋ค.
๋ฆฌ๋ทฐ๋ค์ ์ ๋ฐ์๋์๋ค์. ๋ชจํธํ๋ ๋ฆฌ๋ทฐ๋ค์ ๋ํด์ ๋ค์ ์ฝ๋ฉํธ๋ฅผ ๋จ๊ฒผ์ผ๋ ํ์ธํด๋ณด์ ์.
๋ฆฌ๋ทฐ ์์ ์ submit ํ ๊ฒ๊ณผ ๊ธฐ์กด ๋ฆฌ๋ทฐ์ ๋๊ธ๋ก ๊ทธ๋๊ทธ๋ ๋จ ์ฝ๋ฉํธ๊ฐ ํผ์ฌ๋์ด ์์ผ๋ (์ฃ์ก..) ํ์ธํด๋ณด์๊ณ ๋ ์์ฒญ ์ฃผ์ ์. ๊ฐ์ฌํฉ๋๋ค
| } | ||
|
|
||
| @Override | ||
| protected List<Position> filterValidPositions(Position current, List<Path> paths, BoardReader board) { |
There was a problem hiding this comment.
์กฐ๊ธ ๋ ๊ตฌ์ฒด์ ์ธ ๋ฆฌ๋ทฐ๋ฅผ ๋๋ฆฌ์๋ฉด, board์ Piece์ ์๋ฐฉ์ฐธ์กฐ๊ฐ ์กฐ๊ธ ๋ถํธํด์.
๋ฉ์๋ ๋ด ๋ก์ปฌ ๋ณ์๋ก ์ ์ธํ๊ฑฐ๋, ๋ฉ์๋ ์๊ทธ๋์ฒ์์ ์ธ์๋ ์๋ต ํํ๋ก ๊ฐ์ง๊ณ ์๋ ๊ฒ์ ์ฝํ ์์กด์ด๊ณ
ํ๋๋ก ๊ฐ์ง๊ณ ์๋ ๊ฒ์ ๊ฐํ ์์กด์ ํด๋นํ๋๋ฐ์
๊ฐ์ฒด ๋ด ์์ board์ ๋ํ ์ฐธ์กฐ๋ฅผ ๋ง์ด ํ์๋ก ํ๋ค๋ ๊ฑด ์์กด๊ด๊ณ๋ฅผ ๋ฐ๊พธ์ด์ผ ํ๋ค๋ ์ ํธ์ด๊ธฐ๋ ํฉ๋๋ค.
(๊ฐ์ฒด์งํฅ์ ํ๋ก์ธ์ค์ ํ๋ก์ธ์ค๊ฐ ํ์๋กํ๋ ๋ฐ์ดํฐ๋ฅผ ํด๋์ค๋ผ๋ ํํ๋ก ๋ชจ์ผ๋ ๊ฑฐ๋๊น์)
๊ทธ๋ฐ๋ฐ Piece์ Board๋ฅผ ํ๋๋ก ๋๋ ์๊ฐ, ์๋ฐฉ ์ฐธ์กฐ๊ฐ ๋์ฃ (Board๋ piece์ ๋งต, Piece๋ Board๋ฅผ ์ฐธ์กฐ..)
๋ฌผ๋ก ์ง๊ธ์ฒ๋ผ ๋ฉ์๋์ ์ธ์ ํํ๋ก ์๋ ์๊ฐ ์๋ฐฉ ์ฐธ์กฐ์
๋๋ค๋ง.
๋๋ถ๋ถ์ filterValidPositions์์ board๋ฅผ ํ์๋ก ํ๋ ์ด์ ๋ position์ ๋ํ ์ ์ ๋ฅผ ํ์ธํ๊ธฐ ์ํจ์ธ ๊ฑธ๋ก ๋ณด์ด๋๋ฐ, piece๋ position๊ณผ move strategy๋ฅผ ๊ฐ์ง๊ณ Path ๊น์ง๋ง ์์ฐํ๊ณ ,
position์ ์ด๋ ํ ๋ ์ด๋ฏธ ๊ฐ์ฒด๊ฐ ์๋์ง ์ฌ๋ถ๋ Position๊ณผ Piece์ ๋งตํ์ ๊ด๋ฆฌํ๋ board์์ ํ๋๊ฒ ๊ฐ ๊ฐ์ฒด์ ์ฑ
์์ผ๋ก (ํ๋๋ก ๊ฐ์ง๊ณ ์๋ ๋ฐ์ดํฐ๋ค์ ๋ณด์์ ๋) ์ ์ ํ ๊ฑฐ ๊ฐ์์.
-> ์ด "์ฑ
์"์ด๋ผ๋ ๊ฑด ์ ์ด์ฝฅ์ ํด๋์ค์ ๋ถํ ์์ค๊ณผ ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ๋ฐฐ์นํ๋๋ฅผ ๋ณด๊ณ ๋ ์ฌ๋ฆฐ ๊ฒ์ด์ด์. ์ฑ
์์ ๋ถ๋ฐฐ๋ผ๋ ๊ฑด ์ ๋ต์ด ์๋ ๋ฌธ์ ๊ฐ ์๋๋ผ, ์ด๋ค ํ์๊ฐ ํ์ํ๊ณ ๋๊ฐ ํ ๊ฒ์ด๋ฉฐ ๋ฐ์ดํฐ๋ ์ด๋์ ๋์ด์ผ ํ ๊น? ๋ผ๋ ๋ฐ์ ๋์ ๋ฐฐ์น๋๋ ๊ฒ์ด์์.
์ด๋ฒ ๋ฏธ์
์ ๊ฐ์ฅ ์ค์ถ์ธ ํต์ฌ ๊ตฌ์กฐ์ ๋ํ ๋ถ๋ถ์ด๊ณ , ์ ์ด์ฝฅ์ ๊ณ ๋ฏผ์ด ๋ด๊ฒจ์๋ ๋ถ๋ถ์ด๊ธฐ ๋๋ฌธ์ ์๊ฐ์ด ๋ค๋ฅด์๋ค๋ฉด ๋ฐ๋์ ๋ฐ์ํ ํ์๋ ์์ต๋๋ค.
ํ๋ฒ ๊ณ ๋ฏผํด๋ณด์๊ณ ๋ฐ์์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํด๋ณด์ธ์.
| @Override | ||
| public String toString() { | ||
| return "ํฌ"; | ||
| } |
There was a problem hiding this comment.
๋ค๋ค, toString์ ๋ฌด์กฐ๊ฑด ์ ๊ณต๋๋ ์ฝ๋์ธ๋ฐ ๊ธฐ๋ณธ์ ๊ณต๋๋ hashcode๋ ์ธ๋ชจ๊ฐ ์๊ธฐ ๋๋ฌธ์ ํญ์ ์ฌ์ ์๋ฉ๋๋ค. ๊ทผ๋ฐ toString ๋ฉ์๋์ ๋ชจํธ์ฑ์ผ๋ก ์ธํด (๋ง์์ฃผ์ ๊ฒ์ฒ๋ผ '์ฝ๊ธฐ ์ฌ์ด ํํ' ๋ผ๋๊ฒ ์ผ๋ง๋ ๋ชจํธํ๊ฐ์)
๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋งค ๋ฒ์ ๋ง๋ค ํ์ํธํ์ ์งํค์ง ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
์ ์ด์ ๋ค๋ฅธ ๊ฐ๋ฐ์๊ฐ ๋ง๋ toString์ ๋ก์ง์ ์ธ ๋๋ ์ด ์ง์ ์ ๊ณ ๋ คํด ๋งค์ฐ ์ ์คํ๊ฒ ์ฌ์ฉํด์ผํ๋ฉฐ, (์๊ฐ๊ณผ ๊ด๋ จ๋ java SDK ํด๋์ค ๋ค์ ISO ๊ท์ฝ์ ๋ง์ถฐ toString์ ์๋ตํ๋๋ฐ, ์ด๋ ๊ฒ ์ ํด์ง ํฌ๋งท์ผ๋ก ์ฝ์ ๋ ํด๋์ค์ ๊ฒฝ์ฐ ๊ด์ฐฎ์ต๋๋ค. ๋ฒ์ ์ ๋ฐ๋ผ ๋ณ๊ฒฝ๋์ง ์์ ๊ฒ์ด๋ผ ์์ํ ์ ์์ผ๋๊น์.)
์ค์ค๋ก๋ ๊ฐ๋ฐํ ๋ toString์ด ๋ณํ์ง ์๋ ๋๋ฉ์ธ ์์์ผ๋ก ์ ๊ณตํ๊ฒ ๋ค๋ ํ์ ์ด ์์ผ๋ฉด toString์ ๋น์ฆ๋์ค ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํ๋ฉด ์ ๋ฉ๋๋ค. (์ด ํ์ ์ด๋ผ๋๊ฑด ์ด ๊ฐ์ฒด ์ ์ง๋ณด์๋ฅผ 3๋ ํด๋ toString์ ๋ณ์น์๊ณ ๊ทธ๋๋ก ์ ๊ณตํ ์ ์๋ค ๊ธ์ ๋๋ค)
| import java.util.List; | ||
| import parser.Command; | ||
|
|
||
| public enum Formation { |
There was a problem hiding this comment.
๊ธฐ์กด๋ณด๋ค ํจ์ฌ ๋ง์์ ๋ญ๋๋ค๋ง, ๋์ parser์ command๋ฅผ ์์กดํ๊ณ ์๋ ์ ์ด ์์ฝ์ต๋๋ค. command๊ฐ Formation์ ์๊ณ Formation์ command๋ฅผ ๋ชจ๋ฅด๊ฒ ํด์ฃผ์ธ์.
|
|
||
|
|
||
| @ParameterizedTest | ||
| @ValueSource(ints = {-1, -2, 9, 10, 100}) |
There was a problem hiding this comment.
๊ฒฝ๊ณ๊ฐ์ ๊ธฐ์ค์ผ๋ก ํ ํ ์คํธ๊ฐ ์ ๊ตฌ์ฑ๋์ด ์๋๊ฒ ์ข์ต๋๋ค.
์ฒดํฌ ๋ฆฌ์คํธ
test๋ฅผ ์คํํ์ ๋, ๋ชจ๋ ํ ์คํธ๊ฐ ์ ์์ ์ผ๋ก ํต๊ณผํ๋์?์ด๋ค ๋ถ๋ถ์ ์ง์คํ์ฌ ๋ฆฌ๋ทฐํด์ผ ํ ๊น์?
์จ์ง ์๋ ํ์ธ์!
์ด๊ธฐ ์ค๊ณ์ ๊ธฐ๋ฌผ ์ด๋์ ๋ํ ์ ๋ต ํจํด์ ๋ํ ๊ณ ๋ฏผ์ผ๋ก PR์ด ๋ง์ด ๋ฆ์ด์ก์ต๋๋ค.
ํ์ด์ ๋์์ผ๋ก ์์ฑ๋ ์ฝ๋์ธ์ง๋ผ ์์ง ์ดํดํ๋ ๊ณผ์ ์ธ ์ฝ๋๊ฐ ์กด์ฌํ์ง๋ง, ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ์ผ๋ฉด์ ๋ฐฐ์๊ฐ๋ ค๊ณ ๋ฆฌ๋ทฐ ์์ฒญํ์ต๋๋ค.
์ ๋ถํ๋๋ฆฝ๋๋ค. ๊ฐ์ฌํฉ๋๋ค:)
1. ๊ธฐ๋ฌผ ์ด๋ ์ ๋ต ํจํด ์ ์ฉ
๊ธฐ๋ฌผ ์ด๋ ์ ๋ต ๊ตฌํ ๊ณผ์ ์์ ์ ๋ตํจํด์ ์ ์ฉํ๊ธฐ ์ํ ์ค๊ณ๊ฐ ๋ ์ค๋ฅด์ง ์์ ๊ต์ฅํ ๋ง์ if๋ฌธ๊ณผ while๋ฌธ์ผ๋ก ๊ตฌํํด depth์ ๋ฉ์๋ ๊ธธ์ด๊ฐ ๊ธธ์ด์ก์ต๋๋ค. ์ด๋ฅผ ์, ํ, ์ข, ์ฐ ๋ฑ์ ์ขํ ์ฆ๊ฐ๊ฐ์ Direction Enum์ผ๋ก ๋์ถํ๊ณ , ๊ณ ์ ์ ์ธ ๊ณตํต ํ์ ์๊ณ ๋ฆฌ์ฆ์ OneStepStrategy, SlideStrategy, JumpSlideStrategy, SequenceStrategy๋ก ์ถ์ํํ์ฌ ๊ธฐ๋ฌผ์ ์ฃผ์ ํ๋ ๋ฐฉ๋ฒ์ ํ์ด์ ๋์์ ํตํด ๊ตฌํํ ์ ์์์ต๋๋ค.
2. getter ์ฌ์ฉ
Board, Player, Position์์ getter๋ฅผ ์ฌ์ฉํ๊ณ ์๋๋ฐ, getter์์ด ๊ตฌํํ ๋ฐฉ๋ฒ์ ์ฐพ์ง ๋ชปํด ์ฐ์ ๊ตฌํํ์ต๋๋ค.