반응형
문제
- 문자열을 입력으로 주면 문자열의 첫 글자와 마지막 글자를 출력하는 프로그램을 작성하시오.
입력
- 입력의 첫 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 10)가 주어진다. 각 테스트 케이스는 한 줄에 하나의 문자열이 주어진다. 문자열은 알파벳 A~Z 대문자로 이루어지며 알파벳 사이에 공백은 없으며 문자열의 길이는 1000보다 작다.
출력
- 각 테스트 케이스에 대해서 주어진 문자열의 첫 글자와 마지막 글자를 연속하여 출력한다.
예제입력 1
3
ACDKJFOWIEGHE
O
AB
예제출력 1
AE
OO
AB
문제풀이
- 제출할 때는 문제가 없지만 테스트할 때 문제가 발생
- 백준에서 자바스크립트로 문제를 풀다보면 split('\n')을 사용하여 줄 바꿈을 해줄 경우 \r이 포함되어 있는데 이것 때문에 잘 안 되는 경우가 있음
- 이 문제에서는 내 컴퓨터로 진행할경우 input[i].length가 하나 더 늘어나기 때문에 마지막 글자가 제대로 출력이 안되게 나옴
- 그래서 str 변수에 input[i].trim()을 사용하여 제거하였음
- 아래 링크는 \r 개행문자 처리 관련 포스트
//9086번
//문자열의 첫글자와 마지막 글자 출력
// 문자열의 첫 시작은 0, 마지막 부분은 글자의 길이출력해서 -1 해서 구함
//그 외 substring() 활용해도 됨, 사용법 string 객체의 시작 인덱스로 부터 종료 인덱스 전 까지 문자열의 부분 문자열을 반환합니다.
const fs = require("fs");
const file = process.platform === "linux" ? "dev/stdin" : "./text.txt";
const input = fs.readFileSync(file).toString().trim().split("\n");
const t = input[0];
for (i = 1; i <= t; i++) {
// input[i].trim()을 사용해서 \r 제거
// 개행문자 때문에 length가 하나 늘어나는 것 방지(문제 제출시에는 상관 없음)
let str = input[i].trim();
let End = str.length - 1;
console.log(
input[i].substring(0, 1) + input[i].substring(End, input[i].length)
);
// console.log(input[i].charAt(0) + input[i].charAt(End));
}
'Algorithm_javascript > 5. 문자열' 카테고리의 다른 글
백준 10809번 알파벳 찾기 (javascript, node.js) (0) | 2023.05.20 |
---|---|
백준 11720번 숫자의 합 (javascript, node.js) (0) | 2023.05.20 |
백준 11654번 아스키코드 (javascript, node.js) (0) | 2023.05.20 |
백준 2743번 단어 길이 재기 (javascript, node.js) (0) | 2023.05.20 |
백준 27866번 문자와 문자열 (javascript, node.js) (0) | 2023.05.20 |