KimMinJun
Coding Note
KimMinJun
전체 방문자
오늘
어제
  • 분류 전체보기 (486)
    • ALGORITHM (11)
      • 정렬 (6)
      • 최단경로 (1)
      • 자료구조 (1)
      • 슬라이딩 윈도우 (1)
      • etc (2)
    • Git (5)
    • Web (24)
      • Vanilla JS (13)
      • TS (2)
      • React (7)
      • ETC (1)
    • React 공식문서 (번역, 공부) (11)
      • Quick Start (2)
      • Installation (0)
      • Describing the UI (9)
      • Adding Interactivity (0)
      • Managing State (0)
      • Escape Hatches (0)
    • Next.js 공식문서 (번역, 공부) (3)
      • Getting Started (2)
      • Building Your Application (1)
    • PS (431)
      • 백준 (187)
      • Programmers (104)
      • CodeUp (21)
      • STL (3)
      • 제코베 JS 100제 (50)
      • SWEA (0)
      • LeetCode (65)
    • IT (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 관리

공지사항

인기 글

태그

  • 수학
  • 정렬
  • Level 1
  • Level 0
  • 다이나믹 프로그래밍
  • 그래프
  • programmers
  • 문자열
  • Level1
  • recursion
  • js
  • C
  • codeup
  • C++
  • tree
  • Level 2
  • 백준
  • string
  • LeetCode
  • 제코베 JS 100제

최근 댓글

최근 글

hELLO · Designed By 정상우.
KimMinJun

Coding Note

PS/백준

백준 / 브루트포스 / 16968번 / 차량 번호판 1 / JS

2022. 4. 24. 01:44

문제

상도시의 차량 번호판 형식이 주어졌을 때, 가능한 차량 번호판의 개수를 구해보자.

  • 번호판에 사용할 수 있는 숫자는 0, 1, 2, ..., 8, 9이다.
  • 사용할 수 있는 문자는 a, b, c, d, ..., y, z이다.
  • 차량 번호판의 형식은 최대 4글자이고, c와 d로 이루어진 문자열로 나타낼 수 있다.
  • c는 문자가 위치하는 자리, d는 숫자가 위치하는 자리이다.
  • 같은 문자 또는 숫자가 연속해서 2번 나타나면 안 된다.

예를 들어, 형식이 "cd"이면, a1, d4, h5, k4 등이 가능하다. 형식이 "dd"인 경우에 01, 10, 34, 69는 가능하지만, 00, 11, 55, 66은 같은 숫자가 2번 연속해서 불가능하다.

입력

첫째 줄에 차량 번호판의 형식이 주어진다. 형식은 길이가 4보다 작거나 같으며, c와 d로만 이루어져 있다.

출력

첫째 줄에 가능한 차량 번호판의 개수를 출력한다.

예제 입력 1

dd

예제 출력 1

90

00부터 99까지 총 100가지 중에서 00, 11, 22, 33, 44, 55, 66, 77, 88, 99가 불가능하다.

 

const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : '../input.txt';
const input = fs.readFileSync(filePath).toString().split('\n');

const inputTestCase = input[0];

function solution(testCase) {
  let result = 1;
  let maxC = 26; // a~z
  let maxD = 10; // 0~9

  if(testCase[0] == 'c') result = maxC;
  else if(testCase[0] == 'd') result = maxD;

  for(let i=1; i<testCase.length; i++) {
    let multi;
    let current = testCase[i];
    let prev = testCase[i-1];

    if(current === 'c') multi = maxC;
    else multi = maxD;

    if(current === prev) multi--;
      result *= multi;
  }

  console.log(result);
}

solution(inputTestCase);
저작자표시

'PS > 백준' 카테고리의 다른 글

백준 / 최단경로 - Floyd Warshall / 11403번 / 경로 찾기 / JS  (0) 2022.04.25
백준 / 브루트포스 / 16917번 / 양념 반 후라이드 반 / JS  (0) 2022.04.24
백준 / DP(Dynamic Programming) / 14501번 / 퇴사 / Python  (0) 2022.03.13
백준 / 브루트포스 / 2309번 / 일곱 난쟁이 / Python  (0) 2022.03.12
    'PS/백준' 카테고리의 다른 글
    • 백준 / 최단경로 - Floyd Warshall / 11403번 / 경로 찾기 / JS
    • 백준 / 브루트포스 / 16917번 / 양념 반 후라이드 반 / JS
    • 백준 / DP(Dynamic Programming) / 14501번 / 퇴사 / Python
    • 백준 / 브루트포스 / 2309번 / 일곱 난쟁이 / Python
    KimMinJun
    KimMinJun

    티스토리툴바