백준5637 - 가장 긴 단어 node.js 본문
반응형
https://www.acmicpc.net/problem/5637
해당 문제는 전체 텍스트에서 가장 긴 단어를 소문자로 출력하는 문제다.
다만, 단어는 영문과 하이픈으로만 구성된 단어로만 친다.
문제 해결 방식
먼저 각 문자별로 나누는 과정이 필요했는데, 이때 flat 메서드로 2차원 배열의 문자열을 병합했다.
이후 각 문자열마다 영문, 하이픈만을 추출하는 방식은 정규표현식을 적용하였다. (해당 정규표현식은 gpt를 활용)
그리고 문자열 순회마다 해당 문자열의 길이가 최댓값보다 큰지 확인한 뒤, 크다면 가장 큰 값을 갱신하는 방식으로 로직을 마무리지었다.
전체 소스 코드
const fs = require("fs");
const input = fs
.readFileSync(process.platform === "linux" ? "/dev/stdin" : "입력.txt")
.toString()
.trim()
.split("\n");
function solution(data) {
const words = data
.join(" ")
.split(" ")
.filter((el) => el !== "");
words.pop();
let max = 0;
let result = null;
const pattern = /[^a-zA-Z-]/g;
words.forEach((el) => {
const word = el.replace(pattern, "");
if (word.length > max) {
max = word.length;
result = word;
}
});
console.log(result.toLowerCase());
}
solution(input);
반응형
'개발 > algorithm' 카테고리의 다른 글
백준18111 - 마인크래프트 (완전탐색) node.js (0) | 2024.03.26 |
---|---|
백준17887 - 숨바꼭질 6 (유클리드 호제법) node.js (0) | 2024.03.24 |
백준14382 - 숫자세는 양 (set) node.js (0) | 2024.03.20 |
백준22252 - 정보 상인 호석 (최대 힙, 해시) node.js (0) | 2024.03.18 |
백준15702 - 중간고사 채점 node.js (0) | 2024.03.16 |
Comments