https://school.programmers.co.kr/learn/courses/30/lessons/142086
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
[ ๋ฌธ์ ์ค๋ช ]
๋ฌธ์์ด s๊ฐ ์ฃผ์ด์ก์ ๋, s์ ๊ฐ ์์น๋ง๋ค ์์ ๋ณด๋ค ์์ ๋์์ผ๋ฉด์, ์์ ๊ณผ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ณณ์ ์๋ ๊ฐ์ ๊ธ์๊ฐ ์ด๋ ์๋์ง ์๊ณ ์ถ์ต๋๋ค.
์๋ฅผ ๋ค์ด, s="banana"๋ผ๊ณ ํ ๋, ๊ฐ ๊ธ์๋ค์ ์ผ์ชฝ๋ถํฐ ์ค๋ฅธ์ชฝ์ผ๋ก ์ฝ์ด ๋๊ฐ๋ฉด์ ๋ค์๊ณผ ๊ฐ์ด ์งํํ ์ ์์ต๋๋ค.
b๋ ์ฒ์ ๋์๊ธฐ ๋๋ฌธ์ ์์ ์ ์์ ๊ฐ์ ๊ธ์๊ฐ ์์ต๋๋ค. ์ด๋ -1๋ก ํํํฉ๋๋ค.
a๋ ์ฒ์ ๋์๊ธฐ ๋๋ฌธ์ ์์ ์ ์์ ๊ฐ์ ๊ธ์๊ฐ ์์ต๋๋ค. ์ด๋ -1๋ก ํํํฉ๋๋ค.
n์ ์ฒ์ ๋์๊ธฐ ๋๋ฌธ์ ์์ ์ ์์ ๊ฐ์ ๊ธ์๊ฐ ์์ต๋๋ค. ์ด๋ -1๋ก ํํํฉ๋๋ค.
a๋ ์์ ๋ณด๋ค ๋ ์นธ ์์ a๊ฐ ์์ต๋๋ค. ์ด๋ 2๋ก ํํํฉ๋๋ค.
n๋ ์์ ๋ณด๋ค ๋ ์นธ ์์ n์ด ์์ต๋๋ค. ์ด๋ 2๋ก ํํํฉ๋๋ค.
a๋ ์์ ๋ณด๋ค ๋ ์นธ, ๋ค ์นธ ์์ a๊ฐ ์์ต๋๋ค. ์ด ์ค ๊ฐ๊น์ด ๊ฒ์ ๋ ์นธ ์์ด๊ณ , ์ด๋ 2๋ก ํํํฉ๋๋ค.
๋ฐ๋ผ์ ์ต์ข ๊ฒฐ๊ณผ๋ฌผ์ [-1, -1, -1, 2, 2, 2]๊ฐ ๋ฉ๋๋ค.
๋ฌธ์์ด s์ด ์ฃผ์ด์ง ๋, ์์ ๊ฐ์ด ์ ์๋ ์ฐ์ฐ์ ์ํํ๋ ํจ์ solution์ ์์ฑํด์ฃผ์ธ์.
[ ํ์ด๊ณผ์ ]
1๋ฒ์๋ >
class Solution {
public int[] solution(String s) {
int[] answer = new int[s.length()]; //์ ๋ต๋ฐฐ์ดํฌ๊ธฐ s๋ฌธ์์ดํฌ๊ธฐ์ ๋์ผํ๊ฒ ์ค์
char[] ch = s.toCharArray(); //๋ฌธ์์ด s๋ฅผ char๋ฐฐ์ด๋ก ๋ง๋ค์ด์ค
answer[0] = -1; //answer๋ฐฐ์ด์ ์ฒซ๋ฒ์งธ ์ธ๋ฑ์ค์๋ -1์ ๋ฃ์ด์ฃผ๊ธฐ
//์ด์ค for๋ฌธ์ผ๋ก
//1) i๋ ch๋ฐฐ์ด์ ์ธ๋ฑ์ค 1๋ถํฐ ๋๊น์ง ๋๊ธฐ
//2) j๋ ch๋ฐฐ์ด์ ์ธ๋ฑ์ค 0๋ถํฐ i-1๊น์ง ๋๊ธฐ
for (int i=1; i<ch.length; i++) {
for (int j=0; j<i; j++) {
if (ch[i] != ch[j]) { //๊ฐ์ ์์๊ฐ ์๋ค๋ฉด
answer[i] = -1; //์ ๋ต๋ฐฐ์ด์ -1๋ด์์ฃผ๊ธฐ
} else { //๊ฐ์ ์์๊ฐ ์๋ค๋ฉด
answer[i] = i-j; //i์ธ๋ฑ์ค - j์ธ๋ฑ์ค ๋ด์์ฃผ๊ธฐ
}
}
}
return answer;
}
}

2๋ฒ์๋>
class Solution {
public int[] solution(String s) {
int[] answer = new int[s.length()];
char[] ch = s.toCharArray();
answer[0] = -1;
for (int i=1; i<ch.length; i++) {
for (int j=i-1; j>=0; j--) { //j๋ฅผ i-1๋ถํฐ 0๊น์ง ๊ฑฐ๊พธ๋ก ํ์ํ๋๋ก ๋ณ๊ฒฝ
if (ch[i] == ch[j]) { //๊ฐ์ ์ํ๋ฒณ์ ๋ง๋๋ฉด
answer[i] = i-j; //answer์ i-j๋ด๊ณ
break; //๋น ์ ธ๋์ค๊ธฐ
} else { //๊ฐ์ ์ํ๋ฒณ์ ๋ชป์ฐพ์๋ค๋ฉด
answer[i] = -1; //answer์ -1๋ด๊ธฐ
}
}
}
return answer;
}
}
'๐ฅ Coding Test > ์ค๋ต๋ ธํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [๊ธฐ์ด] ๋ฐฐ์ด ๋ง๋ค๊ธฐ 3 (0) | 2023.07.14 |
|---|---|
| [Lv.1] ์ถ์ต ์ ์ (0) | 2023.07.14 |
| [Lv.1] ๊ฐ์ ์ซ์๋ ์ซ์ด (0) | 2023.07.12 |
| [Lv.1] ๋ฌธ์์ด ๋ด ๋ง์๋๋ก ์ ๋ ฌํ๊ธฐ (0) | 2023.07.12 |
| [Lv.1] ํฌ๊ธฐ๊ฐ ์์ ๋ถ๋ถ๋ฌธ์์ด (0) | 2023.07.11 |