https://programmers.co.kr/learn/courses/30/lessons/60057
ํ๋ก๊ทธ๋๋จธ์ค 2020 KAKAO BLIND RECRUITMENT "๋ฌธ์์ด ์์ถ" ๋ฌธ์ ํ์ด์ด๋ค.
์ฒ์ ๋ฌธ์ ๋ฅผ ์ฝ์ ๋ abcabcdede๊ฐ 3abc2de์ ๊ฐ์ด ์์ถ๋์ด์ผ ํ๋ ์ค ์๊ณ ํค๋ฉ๋ค๊ฐ ๋ค๋ฅธ ๋ถ๋ค ํ์ด๋ฅผ ์กฐ๊ธ ์ฐธ๊ณ ํ๋ค.
์ฃผ์ด์ง ๋ฌธ์์ด์ 3๊ฐ ์ง๋ฆฌ, 2๊ฐ ์ง๋ฆฌ ์ฒ๋ผ ๊ธฐ์ค์ด ์ฌ๋ฌ ๊ฐ๊ฐ ์๋๋ผ ๋ฌธ์์ด์ ์๋ฅผ ์ ์๋ ๋จ์๋ ํ๋๋ก ๊ณ ์ ๋์ด ์์ผ๋ ์ฃผ์ํด์ผ ํ๋ค.
๋ฌธ์์ด์ ์๋ฅผ ์ ์๋ ๋จ์๊ฐ ํ๋๋ก ๊ณ ์ ๋์ด ์๋ค๋ ์ , ๋ฌธ์์ด์ ์ ์ผ ์์์๋ถํฐ ์๋ผ์ผ ํ๋ค๋ ์ ์ ํ์ฉํด ๋ฌธ์์ด์ ์๋ฅด๋ ๋จ์๋ณ๋ก ์์ถํ ๊ฒฝ์ฐ ๊ทธ ํฌ๊ธฐ๋ฅผ ๊ตฌํ๊ณ ๊ฐ์ฅ ์์ถ๋ฅ ์ด ๋์ ๊ฒฝ์ฐ๋ฅผ ์ฐพ์๋๋ค.
์ ๊ทผ๋ฒ ๋ฐ ์์ค์ฝ๋๋ ์๋์ ๊ฐ๋ค.
class Solution {
public int solution(String s) {
int answer = 0;
if (s.length() == 1) {
return 1;
}
// 1 ~ N/2+1 ์ค์ ๋ฌธ์์ด์ ๋ช ๊ฐ ๋จ์๋ก ์๋ฅผ์ง ๋ฐ๋ณต
for (int i = 1; i < s.length() / 2 + 1; i++) {
String target = s.substring(0, i); // ๋ฌธ์์ด์ N๊ฐ ๋จ์๋ก ์ชผ๊ฐ์ด ๋น๊ตํ ๋์
String done = ""; // ๋ฐ๋ณต๋์ง ์๋ ๋ฌธ์์ด์ด๊ฑฐ๋ ์ด๋ฏธ ์์ถ๋ ๋ฌธ์์ด
String current = ""; // ํ์ฌ ๋น๊ต๋๋ ๋์
int count = 1; // ๋ฐ๋ณต ํ์
// N๊ฐ ๋จ์๋ก ์๋ฅด๋ฉด ๊ทธ ๋ค์ N๊ฐ์ ๋น๊ต
for (int j = i; j < s.length(); j += i) {
// ๋จ์ ๋ฌธ์์ด์ด N๊ฐ๋ณด๋ค ์์ ๋๋ ์์ถ ๋ถ๊ฐ๋ฅํ๋ฏ๋ก ๋์ ํ๊ณ ๋๋
if (j + i > s.length()) {
done += s.substring(j, s.length());
}
// ๋จ์ ๋ฌธ์์ด์ด N๊ฐ ์ด์์ผ ๊ฒฝ์ฐ๋ ๋ค์ N๊ธ์์ ๋น๊ต ํ ๋ฐ๋ณตํ์ ์ฆ๊ฐ ๋๋ ๋ฐ๋ณต๋์ ๋ณ๊ฒฝ
else {
current = s.substring(j, j + i);
if (current.equals(target)) {
count++;
} else {
done += ((count == 1 ? "" : count + "") + target);
target = s.substring(j, j + i);
count = 1;
}
}
}
// ์์๋ ์๊ด์์ผ๋ฏ๋ก
// ๋ฐ๋ณตํ์์ ๋์(๋ง์ง๋ง์ผ๋ก ๋ฐ๋ณต๋ ๋์), ์ด๋ฏธ ์์ถ๋์๊ฑฐ๋ ์์ถ๋์ง ๋ชปํ๋ ๋ฌธ์์ด๋ค์ ํฉ์นจ
String result = (count == 1 ? "" : count + "") + target + done;
// N๊ฐ ๋จ์ ์ค ์ด๋ค ๋ฌธ์์ด์ด ๊ฐ์ฅ ์งง์์ง ๋น๊ตํ์ฌ ์ต์๊ฐ ๊ตฌํจ
if (answer == 0) {
answer = result.length();
}
if (result.length() < answer) {
answer = result.length();
}
}
return answer;
}
}
'๊ฐ๋ฐ > ์๋ฃ๊ตฌ์กฐ & ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํคํจ๋ ๋๋ฅด๊ธฐ (Java) (0) | 2021.10.26 |
---|---|
์ซ์ ๋ฌธ์์ด๊ณผ ์๋จ์ด (Java) (0) | 2021.10.26 |
์คํ์ฑํ ๋ฐฉ (Java) (0) | 2021.10.24 |
๋ก๋์ ์ต๊ณ ์์์ ์ต์ ์์ (Java) (0) | 2021.10.24 |
์ ๊ท ์์ด๋ ์ถ์ฒ (Java) (0) | 2021.10.24 |
๋๊ธ