본문 바로가기
Algorithm/LeetCode

[LeetCode] 38. Count and Say (C++)

by shine-jung 2021. 7. 25.
반응형

문제 링크

 

코딩하기 전 생각하기

/*
초기 문자열은 "1"이다.
1부터 시작하여 n-1번 반복한다.
    새 문자열을 t라고 하자.
    반복문을 통해 t를 채우자.
        이전과 같은 숫자가 나오면 count++한다.
        아니라면, t에 count와 해당 숫자를 추가한다.
    마지막 케이스도 처리해준다.
    s에 t를 저장하자.
s를 반환한다.
*/

 


 

코드

class Solution {
public:
    string countAndSay(int n) {
        string s = "1";
        for ( int i = 1; i < n; i++ ) {
            string t = "";
            int count = 1;
            int j = 1;
            for ( ; j < s.length(); j++ ) {
                if ( s[j] == s[j-1] )
                    count++;
                else {
                    t += to_string(count) + s[j-1];
                    count = 1;
                }
            }
            t += to_string(count) + s[j-1];
            s = t;
        }
        return s;
    }
};

 


 

느낀점

 

5년 전 중학교 수업 시간 때 시간을 때우기 위해 끄적였던 개미 수열이다.

옛날 생각이 나는 문제였다. 그 때는 공부 잘했는데

 

(주의) 기록용으로 작성한 글입니다. 코드가 허접하거나 알고리즘의 효율이 낮을 수 있습니다.

댓글 환영합니다!

반응형

댓글