Coding Planet
level1. ์นด๋ ๋ญ์น Java (์ฌ๊ท ํจ์ ํ์ด) ๋ณธ๋ฌธ
๐ ์ฝ๋ฉํ
์คํธ
level1. ์นด๋ ๋ญ์น Java (์ฌ๊ท ํจ์ ํ์ด)
jhj.sharon 2023. 8. 26. 17:59๋ฐ์ํ
โจ ๋ฌธ์
๐ป์ฝ๋
class Solution {
public String solution(String[] cards1, String[] cards2, String[] goal) {
return canForm(goal, cards1, cards2, 0, 0, 0)? "Yes" : "No";
}
private static boolean canForm(String[] goal, String[] cards1, String[] cards2, int idxGoal, int idx1, int idx2){
if(idxGoal == goal.length){
return true; //base case
}
if(idx1 < cards1.length && cards1[idx1].equals(goal[idxGoal])){
if(canForm(goal, cards1, cards2, idxGoal +1, idx1 +1, idx2)){
return true;
}
}
if(idx2 < cards2.length && cards2[idx2].equals(goal[idxGoal])){
if(canForm(goal, cards1, cards2, idxGoal +1, idx1, idx2+1)){
return true;
}
}
return false;
}
}
๐ฉ๐ป ํ์ด ๋ฐฉ๋ฒ
- ์ฌ๊ทํจ์(https://sharonprogress.tistory.com/246)๋ฅผ ์ฌ์ฉํด์ ํ์๋ค.
- ๋ฌธ์์ด ๋ฐฐ์ด์ธ cards1, cards2, goal์ ๋น๊ตํ๊ธฐ ์ํด์๋ ๊ฐ ๋ฌธ์์ด ์์๋ฅผ ๊ฐ๋ฅดํค๋ ์ธ๋ฑ์ค๊ฐ ํ์ํ๋ค. ์ด ์ธ๋ฑ์ค์ ์ ๋ณํ๋ก ๊ฐ ๋ฌธ์์ด์ ๋น๊ตํ ์ ์๋ค.
- canFormํจ์๋ ์ฃผ์ด์ง ๋ชฉํ ๋ฐฐ์ด goal๊ณผ ๋ ์นด๋ ๋ญ์น๋ฅผ ๋น๊ตํ๋ ํจ์์ด๋ค. idxGoal, idx1, idx2๋ ๊ฐ goal, cards1, cards2 ๋ฐฐ์ด์ ํ์ฌ ์ธ๋ฑ์ค๋ฅผ ๋ํ๋ธ๋ค.
- ๋ฒ ์ด์ค ์ผ์ด์ค: ๋ง์ฝ idxGoal์ด goal ๋ฐฐ์ด์ ๊ธธ์ด์ ๊ฐ๋ค๋ฉด, ๋ชฉํ ๋ฐฐ์ด์ ์์ฑํ๋ค๋ ๊ฒ์ ์๋ฏธํ๋ฏ๋ก true๋ฅผ ๋ฐํ
- ๊ทธ๋ ์ง ์์ผ๋ฉด, ํ์ฌ idxGoal ์์น์ goal ๋จ์ด์ cards1 ๋๋ cards2์ ๋จ์ด๊ฐ ์ผ์นํ๋์ง ํ์ธํ๋ค. ์ผ์นํ๋ ๊ฒฝ์ฐ, ํด๋น ์นด๋๋ฅผ ์ฌ์ฉํ๊ณ ์ธ๋ฑ์ค๋ฅผ ์ฆ๊ฐ์์ผ ๋ค์ ๋จ์ด๋ก ์ฌ๊ท ํธ์ถํ๋ค.
๐ ๋๋์
- ์ฌ๊ทํจ์๋ง๋ค ๋ ์์ง ์ด๋ป๊ฒ ๊ตฌ์กฐ์ง์ผํ๋์ง ๊ฐ์ด ์์กํ์ ๊ตฌ๊ธ๋ง ํ ์ฌ๋ฌ ๊ตฌ์กฐ๋ฅผ ์ฐธ๊ณ ํ๋ค. ์ฌ๊ทํจ์๋ฅผ ์ฐ์ง ์๊ณ ๋ ๋ฐ๋ณต๋ฌธ์ผ๋ก๋ ๋ง๋ค ์ ์์ ๊ฒ ๊ฐ๋ค.
- ์ข ๋ ๊ฐ๋จํ๊ฒ ์ง๊ณ ์ถ๋ค..
๋ฐ์ํ
'๐ ์ฝ๋ฉํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
level1. ํธ๋ ํ์ดํธ ๋ํ Java (0) | 2023.08.25 |
---|---|
level1. ์์ฐ์ ๋ค์ง์ด ๋ฐฐ์ด๋ก ๋ง๋ค๊ธฐ Java (0) | 2023.08.24 |
Comments