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 | 29 | 30 |
Tags
- 간단한 날씨 웹 만들기
- 엘리스
- RN 프로젝트
- 프론트개발
- HTML
- 자바스크립트 sort()
- 자바스크립트
- 자바스크립트 split()
- 부트캠프
- 날씨 웹 만들기
- JavaScript
- 자바스크립트 날씨 웹 만들기
- 프론트개발공부
- 개발일기
- 개발공부
- [AI 5기] 연습 문제집
- [파이썬 실습] 기초 문제
- reactnativecli
- 코드스테이츠
- 자바스크립트 reduce()
- [파이썬 실습] 심화 문제
- 삼항연산자
- 엘리스 ai 트랙
- [파이썬 실습] 중급 문제
- 자바스크립트 날씨
- 엘리스 AI 트랙 5기
- leetcode
- 코딩부트캠프
- 리트코드
- 프로그래머스
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