반응형
코딩하기 전 생각하기
/*
초기 문자열은 "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년 전 중학교 수업 시간 때 시간을 때우기 위해 끄적였던 개미 수열이다.
옛날 생각이 나는 문제였다. 그 때는 공부 잘했는데
(주의) 기록용으로 작성한 글입니다. 코드가 허접하거나 알고리즘의 효율이 낮을 수 있습니다.
댓글 환영합니다!
반응형
'Algorithm > LeetCode' 카테고리의 다른 글
[LeetCode] 860. Lemonade Change (C++) (0) | 2021.07.28 |
---|---|
[LeetCode] 14. Longest Common Prefix (C++) (0) | 2021.07.27 |
[LeetCode] 118. Pascal's Triangle (C++) (0) | 2021.07.25 |
[LeetCode] 455. Assign Cookies (C++) (0) | 2021.07.25 |
[LeetCode] 551. Student Attendance Record I (C++) (0) | 2021.07.24 |
댓글