https://school.programmers.co.kr/learn/courses/30/lessons/176963
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
[ ๋ฌธ์ ์ค๋ช ]
์ฌ์ง๋ค์ ๋ณด๋ฉฐ ์ถ์ต์ ์ ์ด ์๋ ๋ฃจ๋ ์ฌ์ง๋ณ๋ก ์ถ์ต ์ ์๋ฅผ ๋งค๊ธธ๋ ค๊ณ ํฉ๋๋ค. ์ฌ์ง ์์ ๋์ค๋ ์ธ๋ฌผ์ ๊ทธ๋ฆฌ์ ์ ์๋ฅผ ๋ชจ๋ ํฉ์ฐํ ๊ฐ์ด ํด๋น ์ฌ์ง์ ์ถ์ต ์ ์๊ฐ ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ฌ์ง ์ ์ธ๋ฌผ์ ์ด๋ฆ์ด ["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 ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
[ ํ์ด๊ณผ์ ]
import java.util.*;
class Solution {
public int[] solution(String[] name, int[] yearning, String[][] photo) {
int[] answer = new int[photo.length];
//์ ๋ต๋ฐฐ์ด ํฌ๊ธฐ photo๋ฐฐ์ด ํ๊ธธ์ด์ ๋์ผํ๊ฒ ์ค์
HashMap<String, Integer> map = new HashMap<>();
//HashMap์ ์ธ
//key = name, value = yearning
for (int i=0; i<name.length; i++) { //for๋ฌธ์ผ๋ก ๋๋ฉด์
map.put(name[i], yearning[i]);
//map์ name, yearning๋ฐฐ์ด ์์๋ค์ key์ value๋ก ์์์ง์ด ๋ฃ์ด์ค
}
for (int i=0; i<photo.length; i++) { //photo๋ฐฐ์ด ํ์ํ
int sum = 0;
//๊ทธ๋ฆฌ์์ ์ํฉ์ ๋ด์ sum ์ ์ธ
//i๊ฐ ์ฆ๊ฐํ ๋๋ง๋ค(photo๋ฐฐ์ด ๋ค์ํ์ผ๋ก ๋์ด๊ฐ๋๋ง๋ค) sum=0์ผ๋ก ์ด๊ธฐํ
for (int j=0; j<photo[i].length; j++) { //photo๋ฐฐ์ด ์ด์ํ
if (map.containsKey(photo[i][j])) { //map์ name(key)์ด ์์ผ๋ฉด
sum += map.get(photo[i][j]);
//name(key)์ ํด๋นํ๋ yearning(value)๊ฐ ๊ฐ์ ธ์์
//sum์ ๋ํด์ฃผ๊ธฐ
}
}
answer[i] = sum;
// ์ ๋ต๋ฐฐ์ด์ sum ๋ด์์ฃผ๊ธฐ
// ์ดํ sum=0์ผ๋ก ๋ค์ ์ด๊ธฐํ
}
return answer;
}
}
[ ๋ค๋ฅธํ์ด ]
class Solution {
public int[] solution(String[] name, int[] yearning, String[][] photo) {
int[] answer = new int[photo.length];
//์ผ์คfor๋ฌธ ์ด์ฉ
for(int i = 0; i < photo.length; i++){ //photo๋ฐฐ์ด ํ์ํ
for(int j = 0; j < photo[i].length; j++){ //photo๋ฐฐ์ด ์ด์ํ
for(int k = 0; k < name.length; k++){ //name๋ฐฐ์ด ์ํ
if(photo[i][j].equals(name[k])) answer[i] += yearning[k];
//photo๋ฐฐ์ด์ name์ด ์์ผ๋ฉด
//name์ ํด๋นํ๋ yearning์ ๋ํด์ answer์ ๋ด์์ค
}
}
}
return answer;
}
}
[ ๋ฌธ๋ฒ์ ๋ฆฌ ]
1. HashMap<key, value>
์์ ์ถ๊ฐ : map.put(key, value)
์์ ์ ๊ทผ : map.get(key)
์์ ์ญ์ : map.remove(key)
ํฌ๊ธฐ ํ์ธ : map.size()
์์ ์กด์ฌ์ฌ๋ถ ํ์ธ :
map.containsKey(key)
map.containsValue(value)
'๐ฅ Coding Test > ์ค๋ต๋ ธํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [๊ธฐ์ด] ์ธ๋ก ์ฝ๊ธฐ (0) | 2023.07.17 |
|---|---|
| [๊ธฐ์ด] ๋ฐฐ์ด ๋ง๋ค๊ธฐ 3 (0) | 2023.07.14 |
| [Lv.1] ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฐ์ ๊ธ์ (0) | 2023.07.13 |
| [Lv.1] ๊ฐ์ ์ซ์๋ ์ซ์ด (0) | 2023.07.12 |
| [Lv.1] ๋ฌธ์์ด ๋ด ๋ง์๋๋ก ์ ๋ ฌํ๊ธฐ (0) | 2023.07.12 |