728x90
https://leetcode.com/problems/count-and-say/
문제 이해하기 힘들어따....
이건 dp..? 재귀..?
아무튼 재귀로 풀었다
이전 값을 이용해서 앞으로의 값을 구해나가는 방식!
이렇게 얘기하니까 dp같다 dp인듯!!
자바 코드)
class Solution {
public String countAndSay(int n) {
if(n==1) {
return "1";
}
String s = countAndSay(n-1);
StringBuilder sb = new StringBuilder();
int i=0; //인덱스
while(i < s.length()) {
int k = 1; //같은 문자열의 갯수
while(i+1 < s.length() && s.charAt(i) == s.charAt(i+1)) {
i++;
k++;
}
sb.append(String.format("%d%c", k, s.charAt(i)));
i++;
}
return sb.toString();
}
}
n=1 이면 1 return
그리고 그 뒤부터 지금 있는 문자열을 읽으면서 같은 문자가 몇개인지 세고, 그 개수를 붙여주면 된다
(연속된 문자의 갯수) + (연속된 문자)
이렇게 보니까 별거 없지..만 이건 참고해서 풀었지..^^
안녕..
728x90
'코딩테스트' 카테고리의 다른 글
[리트코드] 79. Word Search - JAVA (0) | 2022.07.11 |
---|---|
[리트코드] 162. Find Peak Element (0) | 2022.06.20 |
[리트코드] 1222번 - JAVA (0) | 2022.05.31 |
[리트코드] Set Matrix Zeroes - JAVA (0) | 2022.05.26 |
[JAVA] 문자열 배열 길이별로 정렬 (0) | 2022.03.30 |
댓글