https://school.programmers.co.kr/learn/courses/30/lessons/160586
๋จผ์ ์ ๊ฒฝ์ด ๋ถ๋ถ์ ์ฐพ์ target๋ฌธ์์ด์ค ๋ฌธ์๊ฐ ๋ง์ฝ์ ์๋ค๋ฉด -1 ๋ก ๋๋๋๊ฒ์ด๋ค.
๊ทธ๋์ keymap์ ๋ฌธ์์ด์ ๋ชจ๋ ๋ํด์, ์ฐพ์ ์ ์๋์ง ์๋์ง ๋จผ์ ํ๋ณํ๋ค.
๊ทผ๋ฐ ๊ณ์ ์ค๋ต์ด ๋์๋๊ฒ .. !
keymap ์ ์ฒด ๋ฐฐ์ด์ค ์ฐพ์์๋ ์์ด์ indexOf๋ก ์์ฐจ์ ์ผ๋ก ๊ฐ์ฅ ์์ ์์ index๋ฅผ ๊ตฌํ๋๋ฐ
keymap[0] ์์๋ ํด๋น ๋ฌธ์๊ฐ ์๊ณ
keymap[1] ์๋ ์์๊ฒฝ์ฐ 0์ด๋ผ๋ ์ ์ผ ์์ index๋ฅผ ๋ฐ์๋ ๋ค์ ๋น๊ต ์ธ๋ฑ์ค์์ -1๊ณผ ๋น๊ตํด์
-1๋ก ๋๋๊ฒ ๋๊ณ , ๋๋ฅธ ํ์๋ index + 1๋ก ๊ตฌ์ฑํ๊ธฐ๋๋ฌธ์ ์๊พธ answer์ 0์ด ๋ค์ด๊ฐ๋ค..
๋ฌด์จ ๋ง์ธ์ง ์งง๊ฒ ์ค๋ช ํ์ง๋ง ์กฐ๊ธ ๋ ๊ตฌ์ฒด์ ์ธ๊ฑด ์ฃผ์์ผ๋ก ๋ฌ์์.
import java.util.*;
class Solution {
public int[] solution(String[] keymap, String[] targets) {
int[] answer = new int[targets.length];
// ๋ฌธ์์ด์ ํฉ
String totalString = "";
for (int i = 0; i < keymap.length; i++) {
totalString += keymap[i];
}
int cnt = 0;
for (int i = 0; i < targets.length; i++) {
cnt = 0;
for (int j = 0; j < targets[i].length(); j++) {
char ch = targets[i].charAt(j);
// ์ฐพ์ target๋ฌธ์๊ฐ ์์ ์๋ค๋ฉด -1ํ๊ณ ๋ค์๋ฌธ์๋ก
if (!totalString.contains(String.valueOf(ch))) {
answer[i] = -1;
break;
}
int maxIndex = 999;
// ์ฐพ์ target ๋ฌธ์๊ฐ keymap์ ์๊ธดํ๋ค๋ฉด
// ๊ฐ์ฅ ์์ ์์ index๋ฅผ ์ฐพ๊ธฐ
for (int k = 0; k < keymap.length; k++) {
String temp = keymap[k];
int index = temp.indexOf(ch);
// index != -1์ ๋ฃ์ด ์ค์ผ keymap[0]์์ indexOf๊ฐ์ด 0์ด๊ณ
// keymap[1]์์ indexOf๊ฐ์ด -1๋ก ๋จ์ด์ง๋ค๋ฉด ๋ง์ง๋ง์ cnt๊ฐ ๊ณ์ 0์ผ๋ก ์๋จ.
if (index < maxIndex && index != -1) {
maxIndex = index;
}
}
cnt += maxIndex + 1; // ๋๋ฅด๋ ํ์๋ index + 1ํ
}
if (answer[i] != -1) {
answer[i] = cnt;
}
}
return answer;
}
}
'๐ ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค & ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค][JAVA] Level 1 : ์ฑ๊ฒฉ ์ ํ ๊ฒ์ฌํ๊ธฐ (0) | 2024.03.12 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค][JAVA]Level 1 : ๋ฌธ์์ด ๋ด ๋ง์๋๋ก ์ ๋ ฌํ๊ธฐ (0) | 2024.01.05 |
[ํ๋ก๊ทธ๋๋จธ์ค][JAVA]Level 2 : N๊ฐ์ ์ต์๊ณต๋ฐฐ์ (0) | 2023.04.07 |
[ํ๋ก๊ทธ๋๋จธ์ค][JAVA]Level 2 : ๊ตฌ๋ช ๋ณดํธ (0) | 2023.04.05 |
[ํ๋ก๊ทธ๋๋จธ์ค][JAVA]Level 2 : ์์ด ๋๋ง์๊ธฐ (0) | 2023.04.04 |