본문 바로가기
코딩테스트

[리트코드] 38. Count and Say - JAVA

by 의정부핵꿀밤 2022. 6. 7.
728x90

https://leetcode.com/problems/count-and-say/

 

Count and Say - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com


문제 이해하기 힘들어따....

이건 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

댓글