https://school.programmers.co.kr/learn/courses/30/lessons/159994
๐ ํ์ด 2 : ArrayList
๋ฆฌ์คํธ๊ฐ ๋น์ด ์์ผ๋ฉด `get()`๊ณผ `remove()` ๋ฉ์๋์์ ์์ธ๊ฐ ๋ฐ์ํ๋ฏ๋ก `isEmpty()` ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋น์ด์๋ ๋ฆฌ์คํธ์ธ์ง ๋จผ์ ์ฒดํฌํ๋ค.
import java.util.*;
class Solution {
// ์๋จ์ด ๋ฐฐ์ด๊ณผ ์ํ๋ ๋จ์ด ๋ฐฐ์ด์ด ์ฃผ์ด์ง ๋, ์๋จ์ด๋ฅผ ์์๋๋ก ์ฌ์ฉํ์ฌ ์ํ๋ ๋จ์ด ๋ฐฐ์ด์ ๋ง๋ค ์ ์๋์ง ๋ฐํ
public String solution(String[] cards1, String[] cards2, String[] goal) {
List<String> list1 = new ArrayList<>(Arrays.asList(cards1));
List<String> list2 = new ArrayList<>(Arrays.asList(cards2));
for (String word : goal) {
if (!list1.isEmpty() && word.equals(list1.get(0))) list1.remove(0); // ๋ฆฌ์คํธ๊ฐ ๋น์ด ์์ผ๋ฉด ์์ธ ๋ฐ์
else if (!list2.isEmpty() && word.equals(list2.get(0))) list2.remove(0);
else return "No";
}
return "Yes";
}
}
๐ ํ์ด 1 : LinkedList(Queue)
๋ฌธ์์ด ๋ฐฐ์ด์ `LinkedList`๋ก ๋ณํํ์ฌ `Queue`๋ก ์ฌ์ฉํ๋ค. โญ
์ด ๋ `Arrays.asList`๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด์ ๋จผ์ `List`๋ก ๋ณํํ ํ, ์ด๋ฅผ `LinkedList` ์์ฑ์์ ์ ๋ฌํ๋ค.
`peek()`์ `poll()` ๋ฉ์๋๋ ํ๊ฐ ๋น์ด์์ ๊ฒฝ์ฐ์ `null`์ ๋ฐํํ๋ค.
import java.util.*;
class Solution {
// ์๋จ์ด ๋ฐฐ์ด๊ณผ ์ํ๋ ๋จ์ด ๋ฐฐ์ด์ด ์ฃผ์ด์ง ๋, ์๋จ์ด๋ฅผ ์์๋๋ก ์ฌ์ฉํ์ฌ ์ํ๋ ๋จ์ด ๋ฐฐ์ด์ ๋ง๋ค ์ ์๋์ง ๋ฐํ
public String solution(String[] cards1, String[] cards2, String[] goal) {
Queue<String> queue1 = new LinkedList<>(Arrays.asList(cards1));
Queue<String> queue2 = new LinkedList<>(Arrays.asList(cards2));
for (String word : goal) {
if (word.equals(queue1.peek())) queue1.poll(); // ํ๊ฐ ๋น์ด ์์ผ๋ฉด null ๋ฐํ
else if (word.equals(queue2.peek())) queue2.poll();
else return "No";
}
return "Yes";
}
}
'๐ท์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค/Java] 2016๋ (Calendar, LocalDate) (0) | 2024.08.22 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค/Java] ํฐ์ผ๋ชฌ(Stream.distinct()) (0) | 2024.08.17 |
[ํ๋ก๊ทธ๋๋จธ์ค/Java] ์ถ์ต ์ ์(List.indexOf()) (0) | 2024.08.17 |
[ํ๋ก๊ทธ๋๋จธ์ค/Java] ๋ช ์์ ์ ๋น (1)(PriorityQueue) (0) | 2024.08.17 |