https://school.programmers.co.kr/learn/courses/30/lessons/118666
๐ ํ์ด : ์ด์ฐจ์ ๋ฐฐ์ด๊ณผ HashMap
๊ฐ ์ฑ๊ฒฉ ์ ํ์ ์ด์ฐจ์ ๋ฐฐ์ด(char[][])๋ก ์ ์ํ์ฌ ๋์๋๋ ์ฑ๊ฒฉ ์ ํ ์(R/T, C/F, J/M, A/N)์ ์ ์ฅํ๊ณ , HashMap์ ์ฌ์ฉํด ๊ฐ ์ ํ์ ์ ์๋ฅผ ๋์ ํ ํ, ์ต์ข ์ ์ผ๋ก ๊ฐ ์งํ์์ ๋์ ์ ์๋ฅผ ๊ฐ์ง ์ ํ์ ์ ํํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ๋ฐฉ์์ผ๋ก ํด๊ฒฐํ์๋ค.
import java.util.HashMap;
import java.util.Map;
class Solution {
// ์ฃผ์ด์ง ์งํ์ ์ ํํ ๋ฒํธ(1~7)๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฑ๊ฒฉ ์ ํ ๊ฒฐ๊ณผ ๋ฐํ
public String solution(String[] survey, int[] choices) {
/* [1] 1~4๋ฒ ์งํ ์ ํ์ ์ ์ฅํ๋ 2์ฐจ์ ๋ฐฐ์ด ์ ์ธ (R/T, C/F, J/M, A/N) */
char[][] chars = {{'R', 'T'}, {'C', 'F'}, {'J', 'M'}, {'A', 'N'}};
/* [2] ๊ฐ ์งํ์ ์ ์๋ฅผ ์ ์ฅํ ๋งต ์์ฑ (HashMap ์ฌ์ฉ) */
Map<Character, Integer> map = new HashMap<>();
for (char[] c : chars) {
map.put(c[0], 0); map.put(c[1], 0); // ๊ฐ ์ ํ๋ณ ์ ์ ์ด๊ธฐํ
}
/* [3] ์ค๋ฌธ ์กฐ์ฌ ๊ฒฐ๊ณผ์ ์ ํํ ๋ฒํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ ์ ํ์ ์ ์ ๊ณ์ฐ */
for (int i = 0; i < survey.length; i++) {
char c1 = survey[i].charAt(0); // ๋น๋์ ์ ํ ์์ ์ ํ
char c2 = survey[i].charAt(1); // ๋์ ์ ํ ์์ ์ ํ
int score = Math.abs(4 - choices[i]); // ์ ์ ๊ณ์ฐ (1, 7 -> 3์ , 2, 6 -> 2์ , 3, 5 -> 1์ )
if (choices[i] <= 3) map.put(c1, map.get(c1) + score); // ๋น๋์ -> ์ฒซ ๋ฒ์งธ ์ ํ์ ์ ์ ์ถ๊ฐ
else if (choices[i] >= 5) map.put(c2, map.get(c2) + score); // ๋์ -> ๋ ๋ฒ์งธ ์ ํ์ ์ ์ ์ถ๊ฐ
}
/* [4] ๊ฐ ์งํ ์ ํ์ ๋ํ ์ต์ข
๊ฒฐ๊ณผ ๊ฒฐ์ */
StringBuilder sb = new StringBuilder();
for (char[] c : chars) {
// ๋๋ฒ์งธ ์ ํ ์ ์๊ฐ ๋ ํฐ ๊ฒฝ์ฐ์๋ง ๋๋ฒ์งธ ์ ํ์ผ๋ก ์ ์ฅ(์ ์๊ฐ ๊ฐ์ ๊ฒฝ์ฐ ์ฌ์ ์์ด๋ฏ๋ก)
sb.append(map.get(c[1]) > map.get(c[0]) ? c[1] : c[0]);
}
/* [5] ์ต์ข
๊ฒฐ๊ณผ ๋ฌธ์์ด ๋ฐํ */
return sb.toString();
}
}
'๐ท์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค/Java] ํคํจ๋ ๋๋ฅด๊ธฐ(๋งจํดํผ ๊ฑฐ๋ฆฌ) (0) | 2024.09.01 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค/Java] 2016๋ (Calendar, LocalDate) (0) | 2024.08.22 |
[ํ๋ก๊ทธ๋๋จธ์ค/Java] ํฐ์ผ๋ชฌ(Stream.distinct()) (0) | 2024.08.17 |
[ํ๋ก๊ทธ๋๋จธ์ค/Java] ์นด๋ ๋ญ์น(LinkedList(Queue)) (0) | 2024.08.17 |