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 | 31 |
Tags
- 다이나믹프로그래밍
- 알고리즘
- dp알고리즘
- 코테
- 프로그래머스JS
- 익스프레스
- 포이마웹
- HTML
- css기초
- HTML5
- 몽고DB
- 안드로이드 스튜디오
- 백준알고리즘
- 리액트댓글기능
- 프로그래머스
- 백준js
- JS
- 백준nodejs
- 프로그래머스코테
- 리액트
- 백준구현
- 백준
- JS프로그래머스
- 자바스크립트
- 코딩테스트
- 백준구현문제
- CSS
- 리액트커뮤니티
- js코테
- 백준골드
Archives
- Today
- Total
개발새발 로그
[JS] 백준 2941번 : 크로아티아 알파벳 본문
크로아티아 알파벳
한국어
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 | 128 MB | 146039 | 65040 | 54821 | 44.642% |
문제
예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다.
크로아티아 알파벳변경č | c= |
ć | c- |
dž | dz= |
đ | d- |
lj | lj |
nj | nj |
š | s= |
ž | z= |
예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다.
dž는 무조건 하나의 알파벳으로 쓰이고, d와 ž가 분리된 것으로 보지 않는다. lj와 nj도 마찬가지이다. 위 목록에 없는 알파벳은 한 글자씩 센다.
입력
첫째 줄에 최대 100글자의 단어가 주어진다. 알파벳 소문자와 '-', '='로만 이루어져 있다.
단어는 크로아티아 알파벳으로 이루어져 있다. 문제 설명의 표에 나와있는 알파벳은 변경된 형태로 입력된다.
출력
입력으로 주어진 단어가 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다.
예제 입력 1
ljes=njak
예제 출력 1
6
예제 입력 2
ddz=z=
예제 출력 2
3
예제 입력 3
nljj
예제 출력 3
3
예제 입력 4
c=c=
예제 출력 4
2
예제 입력 5
dz=ak
예제 출력 5
3
📋풀이방법
1. 문자열에서 크로아티아 알파벳에 해당되는 알파벳을 찾아서 따로 빼야한다.
2. 이때 그냥 한글자로 된 알파벳이 있으므로 그 조건도 유의해야한다.
🤟내 풀이
const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
let input = fs.readFileSync(filePath).toString().trim();
input=input.match(/(c=|c-|dz=|d-|lj|nj|s=|z=|[a-z])/g)
console.log(input.length);
-match를 사용해서 크로아티아 알파벳과 a-z에 해당되는 알파벳을 걸러줘서 배열로 반환되는 input의 length를 구했다.
👍백준에서 다른 풀이
const fs = require("fs");
const input = (
process.platform === "linux"
? fs.readFileSync("/dev/stdin").toString()
: `ljes=njak`
).trim();
let croatia = ["c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="];
function solution(input) {
for (let alphabet of croatia) {
input = input.split(alphabet).join("Q");
}
return input.length; // return input일 경우 QeQQak를 반환한다.
}
console.log(solution(input));
-만약 match 라이브러리를 사용하지 못할 때의 경우도 생각해야하므로 위와 같이 풀 수도 있을거 같다.
💢어려웠던 점
-match를 사용 할 때 정규 표현식에 아직 익숙하지 못했다.
-정규표현식을 한번 더 보는게 좋을것 같다,
728x90
반응형
LIST
'알고리즘' 카테고리의 다른 글
[JS] 백준 14503번 : 로봇청소기 (0) | 2023.06.27 |
---|---|
[JS] 백준 15686 : 치킨 배달 - 구현 문제 (0) | 2023.06.26 |
[JS] 백준 10828 : 스택 - 구현문제 (0) | 2023.06.26 |
[JS] 백준 1316번 : 그룹 단어 체커 - 구현문제 (0) | 2023.06.25 |
[JS] 백준 4673 : 셀프 넘버 -구현문제 (0) | 2023.06.25 |