๋ฌธ์ ์ค๋ช
https://school.programmers.co.kr/learn/courses/30/lessons/159994
์ฝ๋๋ ์์ด ๋จ์ด๊ฐ ์ ํ ์นด๋ ๋ญ์น ๋ ๊ฐ๋ฅผ ์ ๋ฌผ๋ก ๋ฐ์์ต๋๋ค. ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ ๊ท์น์ผ๋ก ์นด๋์ ์ ํ ๋จ์ด๋ค์ ์ฌ์ฉํด ์ํ๋ ์์์ ๋จ์ด ๋ฐฐ์ด์ ๋ง๋ค ์ ์๋์ง ์๊ณ ์ถ์ต๋๋ค.
- ์ํ๋ ์นด๋ ๋ญ์น์์ ์นด๋๋ฅผ ์์๋๋ก ํ ์ฅ์ฉ ์ฌ์ฉํฉ๋๋ค.
- ํ ๋ฒ ์ฌ์ฉํ ์นด๋๋ ๋ค์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ์นด๋๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ค์ ์นด๋๋ก ๋์ด๊ฐ ์ ์์ต๋๋ค.
- ๊ธฐ์กด์ ์ฃผ์ด์ง ์นด๋ ๋ญ์น์ ๋จ์ด ์์๋ ๋ฐ๊ฟ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ์ฒซ ๋ฒ์งธ ์นด๋ ๋ญ์น์ ์์๋๋ก ["i", "drink", "water"], ๋ ๋ฒ์งธ ์นด๋ ๋ญ์น์ ์์๋๋ก ["want", "to"]๊ฐ ์ ํ์์ ๋ ["i", "want", "to", "drink", "water"] ์์์ ๋จ์ด ๋ฐฐ์ด์ ๋ง๋ค๋ ค๊ณ ํ๋ค๋ฉด ์ฒซ ๋ฒ์งธ ์นด๋ ๋ญ์น์์ "i"๋ฅผ ์ฌ์ฉํ ํ ๋ ๋ฒ์งธ ์นด๋ ๋ญ์น์์ "want"์ "to"๋ฅผ ์ฌ์ฉํ๊ณ ์ฒซ ๋ฒ์งธ ์นด๋๋ญ์น์ "drink"์ "water"๋ฅผ ์ฐจ๋ก๋๋ก ์ฌ์ฉํ๋ฉด ์ํ๋ ์์์ ๋จ์ด ๋ฐฐ์ด์ ๋ง๋ค ์ ์์ต๋๋ค.
๋ฌธ์์ด๋ก ์ด๋ฃจ์ด์ง ๋ฐฐ์ด cards1, cards2์ ์ํ๋ ๋จ์ด ๋ฐฐ์ด goal์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, cards1๊ณผ cards2์ ์ ํ ๋จ์ด๋ค๋ก goal๋ฅผ ๋ง๋ค ์๋ค๋ฉด "Yes"๋ฅผ, ๋ง๋ค ์ ์๋ค๋ฉด "No"๋ฅผ returnํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์ฌํญ
- 1 ≤ cards1์ ๊ธธ์ด, cards2์ ๊ธธ์ด ≤ 10
- 1 ≤ cards[i]์ ๊ธธ์ด, cards[i]์ ๊ธธ์ด ≤ 10
- cards1๊ณผ cards2์๋ ์๋ก ๋ค๋ฅธ ๋จ์ด๋ง ์กด์ฌํฉ๋๋ค.
- 2 ≤ goal์ ๊ธธ์ด ≤ cards1์ ๊ธธ์ด + cards2์ ๊ธธ์ด
- 1 ≤ goal[i]์ ๊ธธ์ด ≤ 10
- goal์ ์์๋ cards1๊ณผ cards2์ ์์๋ค๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- cards1, cards2, goal์ ๋ฌธ์์ด๋ค์ ๋ชจ๋ ์ํ๋ฒณ ์๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
cards1 | cards2 | goal | result |
["i", "drink", "water"] | ["want", "to"] | ["i", "want", "to", "drink", "water"] | "Yes" |
["i", "water", "drink"] | ["want", "to"] | ["i", "want", "to", "drink", "water"] | "No" |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- ๋ณธ๋ฌธ๊ณผ ๊ฐ์ต๋๋ค.
์ ์ถ๋ ฅ ์ #2
- cards1์์ "i"๋ฅผ ์ฌ์ฉํ๊ณ cards2์์ "want"์ "to"๋ฅผ ์ฌ์ฉํ์ฌ "i want to"๊น์ง๋ ๋ง๋ค ์ ์์ง๋ง "water"๊ฐ "drink"๋ณด๋ค ๋จผ์ ์ฌ์ฉ๋์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ํด๋น ๋ฌธ์ฅ์ ์์ฑ์ํฌ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ "No"๋ฅผ ๋ฐํํฉ๋๋ค.
๋ด๊ฐ ์์ฑํ ์ฝ๋
class Solution {
public String solution(String[] cards1, String[] cards2, String[] goal) {
String answer = "";
int idx1 = 0;
int idx2 = 0;
for (String word : goal) {
if (idx1 < cards1.length && word.equals(cards1[idx1])) {
idx1 ++;
} else if (idx2 < cards2.length && word.equals(cards2[idx2])) {
idx2 ++;
} else {
return answer = "No";
}
}
answer = "Yes";
return answer;
}
}
์ฝ๋ ์ค๋ช
- int idx1 = 0 : cards1 ๋ฐฐ์ด์ ํ์ฌ ํ์ธ ์ค์ธ ์ธ๋ฑ์ค๋ฅผ ์ ์ฅํ๊ธฐ ์ํด idx1 ๋ณ์๋ฅผ 0์ผ๋ก ์ด๊ธฐํํ๋ค.
- int idx2 = 0 : cards2 ๋ฐฐ์ด์ ํ์ฌ ํ์ธ ์ค์ธ ์ธ๋ฑ์ค๋ฅผ ์ ์ฅํ๊ธฐ ์ํด idx2 ๋ณ์๋ฅผ 0์ผ๋ก ์ด๊ธฐํํ๋ค.
- for (String word : goal) { } : ํฅ์๋ for๋ฌธ์ ์ฌ์ฉํด์ goal ๋ฐฐ์ด์ ๊ฐ ๋จ์ด๋ฅผ ์์๋๋ก ๊ฐ์ ธ์จ๋ค.
- if (idx1 < cards1.length && word.equals(cards1[idx1])) { idx1++; } : if๋ฌธ์ ์ฌ์ฉํด์ idx1๊ฐ cards1์ ๊ธธ์ด๋ณด๋ค ์๊ณ word๊ฐ cards1์ idx1๋ฒ์งธ ๊ฐ๊ณผ ๋์ผํ๋ค๋ฉด idx1 ๊ฐ์ 1 ์ฆ๊ฐํ๋ค.
- else if (idx2 < cards2.length && word.equals(cards2[idx2])) { idx2++; } : if๋ฌธ์ ์ฌ์ฉํด์ idx2๊ฐ cards2์ ๊ธธ์ด๋ณด๋ค ์๊ณ word๊ฐ cards2์ idx2๋ฒ์งธ ๊ฐ๊ณผ ๋์ผํ๋ค๋ฉด idx2 ๊ฐ์ 1 ์ฆ๊ฐํ๋ค.
- else { return answer = "No" } : ์์ ์กฐ๊ฑด์ ๋ชจ๋ ๋ง์กฑํ์ง ์๋๋ค๋ฉด answer ๋ณ์์ "No" ๊ฐ์ ์ ์ฅํ๊ณ ์ถ๋ ฅํ๋ค.
- answer = "Yes" : for๋ฌธ์ด ์ข ๋ฃ๋ ๋๊น์ง ์กฐ๊ฑด์ ๋ชจ๋ ๋ง์กฑํ๋ค๋ฉด answer ๋ณ์์ "Yes" ๊ฐ์ ์ ์ฅํ๋ค.
'ํ๋ก๊ทธ๋๋จธ์ค > ์๊ณ ๋ฆฌ์ฆ ํ์ด(Java)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค_2016๋ (1) | 2024.12.13 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค_๋ช ์์ ์ ๋น(1) (1) | 2024.12.12 |
ํ๋ก๊ทธ๋๋จธ์ค_์ฝ๋ผ ๋ฌธ์ (0) | 2024.12.11 |
ํ๋ก๊ทธ๋๋จธ์ค_ํธ๋ ํ์ดํธ ๋ํ (0) | 2024.12.10 |
ํ๋ก๊ทธ๋๋จธ์ค_๊ฐ์ฅ ๊ฐ๊น์ด ๊ฐ์ ๊ธ์ (0) | 2024.12.09 |