BOJ[11328] - Strfry by JavaScript
Strfry
문제
언어
- JavaScript
순서도
- 각 문자열에 대해서
- 앞의 문자열에서 알파벳의 개수 세기
- 뒤의 문자열에서 알파벳의 개수 세서 빼기
- 알파벳의 개수가 모두 0 인지 검사하기
문제 풀이 step 1
- 주어진 문자열 2 개의 알파벳의 개수가 동일한지 검사하는 문제입니다.
후기
- 알고리즘을 잠깐 놓았다가 다시 공부하고 있는데, 너무 문제에 대한 진심도가 떨어지고, 고쳤던 실수들이 다시 나와서 포스트하게 되었습니다.
- 문제에서 두 문자열의 길이가 같다는 얘기도 없는데 제 마음대로 같다라고 생각하고 풀어서 문자열 배열 인덱스 접근 문제가 발생했습니다.
- 고쳤던 실수들을 다시 반복하지 않고, 좀 더 문제를 성의있게 풀어야겠습니다.
소스 코드
const input = require("fs")
.readFileSync("/dev/stdin")
.toString()
.trim()
.split("\n");
const solution = (input) => {
const n = Number(input[0]);
const arr = input.slice(1).map((v) => v.split(" "));
let res = "";
for (let i = 0; i < n; i++) {
const [left, right] = arr[i].map((v) => v.split(""));
const cnts = Array(26).fill(0);
for (let j = 0; j < left.length; j++) {
cnts[left[j].charCodeAt(0) - "a".charCodeAt(0)] += 1;
}
for (let j = 0; j < right.length; j++) {
cnts[right[j].charCodeAt(0) - "a".charCodeAt(0)] -= 1;
}
let flag = true;
for (let j = 0; j < 26; j++) {
if (cnts[j] === 0) continue;
flag = false;
break;
}
if (flag) res += "Possible\n";
else res += "Impossible\n";
}
return res;
};
console.log(solution(input));