백준14584 - 암호 해독 node.js 본문
반응형
https://www.acmicpc.net/problem/14584
문제 풀이 방식
모든 경우의 수를 파악하는 방식으로 문제를 해결했다.
첫 번째 등장한 문자열의 charCode를 하나씩 증가시킨 문자열로 바꾼 뒤, 해당 문자열 안에 사전에 존재하는 단어가 있는지 파악하여 없을 경우 재탐색, 있는 경우 답을 출력하는 로직으로 구현했다.
전체 소스 코드
const fs = require("fs");
const input = fs
.readFileSync(process.platform === "linux" ? "/dev/stdin" : "입력.txt")
.toString()
.trim()
.split("\n");
function solution(data) {
const [str, _, ...words] = data;
for (let i = 0; i < 26; i++) {
const transStr = str
.split("")
.map((el) => {
const chr = el.charCodeAt() + i;
const chrCode = chr > 122 ? chr - 26 : chr;
return String.fromCharCode(chrCode);
})
.join("");
if (verify(words, transStr)) {
console.log(transStr);
return;
}
}
}
function verify(words, tranStr) {
for (const word of words) {
if (tranStr.includes(word)) return true;
}
return false;
}
solution(input);
반응형
'개발 > algorithm' 카테고리의 다른 글
백준2635 - 수 이어가기 (완전탐색) node.js (0) | 2024.02.06 |
---|---|
백준14888 - 연산자 끼워넣기 (백트래킹, Math.floor & parseInt 차이) node.js (0) | 2024.02.04 |
백준5014 - 스타트링크 (BFS) node.js (0) | 2024.01.31 |
백준1806 - 부분합 (두 포인터) node.js (0) | 2024.01.29 |
백준1312 - 소수 (부동소수점) node.js (0) | 2024.01.27 |
Comments