Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 개발일기
- reactnativecli
- 날씨 웹 만들기
- [파이썬 실습] 기초 문제
- 코드스테이츠
- 자바스크립트 split()
- 프론트개발공부
- 엘리스
- 자바스크립트 reduce()
- 코딩부트캠프
- [AI 5기] 연습 문제집
- 엘리스 ai 트랙
- HTML
- 개발공부
- [파이썬 실습] 심화 문제
- 프론트개발
- 리트코드
- RN 프로젝트
- 간단한 날씨 웹 만들기
- 삼항연산자
- JavaScript
- 자바스크립트 날씨
- 자바스크립트 날씨 웹 만들기
- 자바스크립트 sort()
- leetcode
- 부트캠프
- 프로그래머스
- 엘리스 AI 트랙 5기
- 자바스크립트
- [파이썬 실습] 중급 문제
Archives
- Today
- Total
개발조각
[리트코드] 38. Count and Say 본문
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
문제만 이해하시면 쉬운문제입니다.
해결방안
아마 이미지를 보시면 이해가 가실 거예요

간단하게 설명을 하자면
만약 n=6을 구한다고 가정하면
n=5일 때 결괏값이 111221입니다.
n=6에서는 이전 값 n=5일 때를 분석을 해줍니다.
분석을 할 때 이어지는 값이 똑같은 숫자만큼 구분해주시고요.
예시를 들자면 n = 5 → 111221
- 111, 22, 1
이런 식으로 구성을 해줍니다.
- 111 : 1이 3개 있음 → num: 1, count: 3
- 22 : 2가 2개 있음 → num: 2, count: 2
- 1 : 1이 1개 있음 → num: 1, count: 1
이렇게 되고 이걸 다시 이어 붙여주시면 됩니다. count + num 이런 식으로 요.
'31' + '22' + '11' = '312211'
이렇게 됩니다.
소스코드
var countAndSay = function(n) {
if(n === 1) return '1';
let str = '1';
for(let i=2; i<=n; i++){
let str2 = '';
let count = 1;
for(let j=0; j<str.length; j++){
let num = str[j];
if(str[j] === str[j+1]) count++;
else{
str2 += `${count}${num}`;
count = 1;
}
}
str = str2;
}
return str;
};
countAndSay(1)이면 1이기 때문에
1일 경우 빼고 2일 때부터 반복문을 돌려주었습니다.


728x90
반응형
'알고리즘🅰 > 리트코드' 카테고리의 다른 글
| [리트코드] 43. Multiply Strings (0) | 2022.10.08 |
|---|---|
| [리트코드] 39. Combination Sum (0) | 2022.10.05 |
| [리트코드] 33. Search in Rotated Sorted Array (0) | 2022.10.01 |
| [리트코드] 34. Find First and Last Position of Element in Sorted Array (0) | 2022.09.30 |
| [리트코드] 35. Search Insert Position (0) | 2022.09.30 |
Comments