๐โ๏ธ ๋ฌธ์ ์ค๋ช
์ฌ์ง๋ค์ ๋ณด๋ฉฐ ์ถ์ต์ ์ ์ด ์๋ ๋ฃจ๋ ์ฌ์ง๋ณ๋ก ์ถ์ต ์ ์๋ฅผ ๋งค๊ธธ๋ ค๊ณ ํฉ๋๋ค. ์ฌ์ง ์์ ๋์ค๋ ์ธ๋ฌผ์ ๊ทธ๋ฆฌ์ ์ ์๋ฅผ ๋ชจ๋ ํฉ์ฐํ ๊ฐ์ด ํด๋น ์ฌ์ง์ ์ถ์ต ์ ์๊ฐ ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ฌ์ง ์ ์ธ๋ฌผ์ ์ด๋ฆ์ด ["may", "kein", "kain"]์ด๊ณ ๊ฐ ์ธ๋ฌผ์ ๊ทธ๋ฆฌ์ ์ ์๊ฐ [5์ , 10์ , 1์ ]์ผ ๋ ํด๋น ์ฌ์ง์ ์ถ์ต ์ ์๋ 16(5 + 10 + 1)์ ์ด ๋ฉ๋๋ค. ๋ค๋ฅธ ์ฌ์ง ์ ์ธ๋ฌผ์ ์ด๋ฆ์ด ["kali", "mari", "don", "tony"]์ด๊ณ ["kali", "mari", "don"]์ ๊ทธ๋ฆฌ์ ์ ์๊ฐ ๊ฐ๊ฐ [11์ , 1์ , 55์ ]]์ด๊ณ , "tony"๋ ๊ทธ๋ฆฌ์ ์ ์๊ฐ ์์ ๋, ์ด ์ฌ์ง์ ์ถ์ต ์ ์๋ 3๋ช ์ ๊ทธ๋ฆฌ์ ์ ์๋ฅผ ํฉํ 67(11 + 1 + 55)์ ์ ๋๋ค.
๊ทธ๋ฆฌ์ํ๋ ์ฌ๋์ ์ด๋ฆ์ ๋ด์ ๋ฌธ์์ด ๋ฐฐ์ด name, ๊ฐ ์ฌ๋๋ณ ๊ทธ๋ฆฌ์ ์ ์๋ฅผ ๋ด์ ์ ์ ๋ฐฐ์ด yearning, ๊ฐ ์ฌ์ง์ ์ฐํ ์ธ๋ฌผ์ ์ด๋ฆ์ ๋ด์ ์ด์ฐจ์ ๋ฌธ์์ด ๋ฐฐ์ด photo๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ฌ์ง๋ค์ ์ถ์ต ์ ์๋ฅผ photo์ ์ฃผ์ด์ง ์์๋๋ก ๋ฐฐ์ด์ ๋ด์ returnํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
โ ์ ํ์ฌํญ
- 3 ≤ name์ ๊ธธ์ด = yearning์ ๊ธธ์ด≤ 100
- 3 ≤ name์ ์์์ ๊ธธ์ด ≤ 7
- name์ ์์๋ค์ ์ํ๋ฒณ ์๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- name์๋ ์ค๋ณต๋ ๊ฐ์ด ๋ค์ด๊ฐ์ง ์์ต๋๋ค.
- 1 ≤ yearning[i] ≤ 100
- yearning[i]๋ i๋ฒ์งธ ์ฌ๋์ ๊ทธ๋ฆฌ์ ์ ์์ ๋๋ค.
- 3 ≤ photo์ ๊ธธ์ด ≤ 100
- 1 ≤ photo[i]์ ๊ธธ์ด ≤ 100
- 3 ≤ photo[i]์ ์์(๋ฌธ์์ด)์ ๊ธธ์ด ≤ 7
- photo[i]์ ์์๋ค์ ์ํ๋ฒณ ์๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- photo[i]์ ์์๋ค์ ์ค๋ณต๋ ๊ฐ์ด ๋ค์ด๊ฐ์ง ์์ต๋๋ค.
๐ก ์ ์ถ๋ ฅ ์
์ ์ถ๋ ฅ ์ #1
- ์ฒซ ๋ฒ์งธ ์ฌ์ง ์ "may", "kein", "kain", "radi"์ ๊ทธ๋ฆฌ์ ์ ์๋ฅผ ํฉ์น๋ฉด 19(5 + 10 + 1 + 3)์ ์ ๋๋ค. ๋ ๋ฒ์งธ ์ฌ์ง ์ ๊ทธ๋ฆฌ์ํ๋ ์ฌ๋๋ค์ธ "may"์ "kein"์ ๊ทธ๋ฆฌ์ ์ ์๋ฅผ ํฉ์น๋ฉด 15(5 + 10)์ ์ ๋๋ค. ์ธ ๋ฒ์งธ ์ฌ์ง์ ๊ฒฝ์ฐ "kain"๊ณผ "may"๋ง ๊ทธ๋ฆฌ์ํ๋ฏ๋ก ๋์ ๊ทธ๋ฆฌ์ ์ ์๋ฅผ ํฉํ 6(1 + 5)์ ์ด ์ฌ์ง์ ์ถ์ต ์ ์์ ๋๋ค. ๋ฐ๋ผ์ [19, 15, 6]์ ๋ฐํํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #2
- ์ฒซ ๋ฒ์งธ ์ฌ์ง ์ ๊ทธ๋ฆฌ์ํ๋ ์ฌ๋๋ค์ธ "kali", "mari", "don"์ ๊ทธ๋ฆฌ์ ์ ์๋ฅผ ํฉ์น๋ฉด 67(11 + 1 + 55)์ ์ ๋๋ค. ๋ ๋ฒ์งธ ์ฌ์ง ์์ ๊ทธ๋ฆฌ์ํ๋ ์ธ๋ฌผ์ด ์์ผ๋ฏ๋ก 0์ ์ ๋๋ค. ์ธ ๋ฒ์งธ ์ฌ์ง ์ ๊ทธ๋ฆฌ์ํ๋ ์ฌ๋์ "don"๋ง ์์ผ๋ฏ๋ก 55์ ์ ๋๋ค. ๋ฐ๋ผ์ [67, 0, 55]๋ฅผ ๋ฐํํฉ๋๋ค.
๐ฉ ๋ด ํ์ด
class Solution{
public int[] solution(String[] name, int[] yearning, String[][] photo) {
int[] answer = new int[photo.length];
HashMap<String,Integer> map = new LinkedHashMap<>();
for(int i=0; i< name.length; i++){
map.put(name[i], yearning[i]); // ์ถ์ตํ๋ ์ฌ๋ ์ด๋ฆ์ ์ ์ ์ ์ฅ
}
for(int i=0; i< photo.length; i++){
String[] persons = photo[i]; // ๊ทธ๋ฃน๋ณ ๋ฐฐ์ด ์์ฑ
int score = 0;
for(int j=0; j<persons.length; j++){
String person = persons[j];
if(map.containsKey(person)){ // map์ key์ photo ์ ์ฌ๋์ด ์๋ค๋ฉด
score+=map.get(person); // ์ ์ ์ถ๊ฐ
}
}
answer[i]=score;
}
return answer;
}
}
map์ ํ์ฉํด ํ์๋ค.
'Back-end > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ์นด๋ ๋ญ์น (java) (0) | 2023.08.20 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ํ๋ฒ๊ฑฐ ๋ง๋ค๊ธฐ (java) (0) | 2023.08.18 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฒด์ก๋ณต (java) - ๊ทธ๋ฆฌ๋ (0) | 2023.08.17 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ชจ์๊ณ ์ฌ (java) - ์์ ํ์ (0) | 2023.08.16 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ ์ฐพ๊ธฐ (java) (0) | 2023.08.13 |