일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 정리
- 나이트의이동
- 타입스크립트
- 풀이
- 20300번
- 맥주마시면서걸어가기
- 13913번
- 6593번
- 자바스크립트
- node.js
- 1541번
- 17626번
- 알고리즘
- 1926번
- 한윤정이 이탈리아에 가서 아이스크림을 사먹는데
- javascript
- 타입스크립트 프로그래밍
- 16953번
- 백준
- 20365번
- 토마토
- 14940번
- 5427번
- 123만들기
- 2503번
- 7526번
- 2422번
- 1969번
- 5014번
- 16439번
Archives
- Today
- Total
Sqsung DevLog
[백준] 20365번: 블로그2 - Node.js (자바스크립트) 본문
1. 문제 ㅡ 20365번: 블로그 2 (난이도: Silver III)
20365번: 블로그2
neighbor 블로그를 운영하는 일우는 매일 아침 풀고 싶은 문제를 미리 정해놓고 글을 올린다. 그리고 매일 밤 각각의 문제에 대하여, 해결한 경우 파란색, 해결하지 못한 경우 빨간색으로 칠한
www.acmicpc.net
2. 풀이 ㅡ Node.js (자바스크립트)
const input = require('fs').readFileSync('/dev/stdin').toString().split('\n');
const getMinStroke = tc => {
const [N, strokes] = [+tc[0], tc[1]];
// first는 첫 번째 색상을 나타낸다 (: 'R' | 'B')
const first = strokes[0];
let count = 1;
for (let i = 1; i < N; i++) {
// 현재 순회 중인 값이 first와 다르면서 이전 값과 다른 경우
if (strokes[i] !== first && strokes[i] !== strokes[i - 1]) count += 1;
}
return count;
};
console.log(getMinStroke(input));
2-1. 풀이 설명
- 일우가 칠해야 하는 색상들로 구성된 strokes 중 첫 번째 색상(first)을 기준으로 잡는다
- strokes를 순회하면서 현재 색상이 first와 다른면서 이전 값과 다른지 확인한다
- 해당 조건에 일치할 때마다 count를 1씩 증가시키고, 반복문이 끝나면 누적된 count를 반환한다
'Algorithm' 카테고리의 다른 글
[백준] 1541번: 잃어버린 괄호 - Node.js (자바스크립트) (0) | 2023.06.20 |
---|---|
[백준] 1931번: 회의실 배정 - Node.js (자바스크립트) (0) | 2023.06.19 |
[백준] 17626번: Four Squares - Node.js (자바스크립트) (0) | 2023.06.15 |
[백준] 14501번: 퇴사 - Node.js (자바스크립트) (0) | 2023.06.15 |
[백준] 2503번: 숫자 야구 - Node.js (자바스크립트) (0) | 2023.06.14 |