(1) 들여쓰기
코드의 로직이 명확하게 종속적으로 나뉘는 코드를 쓸 때, 종속된 code block은 주인 code block보다 두 칸 들여쓰기 한다.
if (condition) {
action();
}
(2) 이름짓기
(3) 문자열 표시는 작은 따옴표
(4) if
, for
, while
문의 끝에는 세미콜론을 사용하지 않는다.
(5) 3항 연산자(?
)는 간결하고 가독성이 좋은 경우에만 사용
문제
문자열을 입력받아 연속되는 문자가 있을 경우, 연속 구간을 반복되는 수와 문자로 조합한 형태로 압축한 문자열을 리턴
입력
string
타입의 알파벳 문자열
출력
string
타입 리턴하기compressString('wwwpp') = '3wpp'
) 수도코드 작성하기
결과값이 되는 문자열을 선언한다.let result = '';
첫번째 문자가 3번 이상 반복될 경우 반복된 횟수를 저장하고 그 횟수+반복된 문자를 출력한다.
횟수는 (1로) 초기화되고 반복을 계산할 문자도 바뀐 문자로 업데이트한다.
function compressString(str) {
let count = 1;
let result = '';
let str = str + ' '; //마지막 부분이 연속된 문자일 경우를 위해 dummy문자 추가
let first = str[0];
for (let i = 1; i < str.length; i++) {
if (str[i] === first {
count ++;
} else {
if (count >= 3) {
result = result + `${count}${first}`
} else {
result = result + first.repeat(count);
}
count = 1;
first = str[i];
}
}
return result;
}