ALGORITHM/BOJ
[백준_javascript] 심화 1 (1316, 25206)
오늘도 코딩하나
2024. 8. 12. 17:09
#1316 (그룹 단어 체커)
const fs = require('fs');
const file = process.platform === 'linux' ? '/dev/stdin' : __dirname+'/input.txt';
const input = fs.readFileSync(file).toString().trim().split('\n').map(item => item.trim().split(' '));
const gpa = {'A+':4.5, 'A0':4.0, 'B+':3.5, 'B0':3.0, 'C+':2.5, 'C0':2.0, 'D+':1.5, 'D0':1.0, 'F':0.0};
let total = 0;
let totalGrade = 0;
for(let [subject, score, grade] of input) {
if(grade !== 'P') {
total += Number(score) * gpa[grade];
totalGrade += Number(score);
}
}
console.log((total/totalGrade).toFixed(6));
#25206 (너의 평점은)
solution1_Set() 활용.
const fs = require('fs');
const file = process.platform === 'linux' ? '/dev/stdin' : __dirname+'/input.txt';
const [N, ...words] = fs.readFileSync(file).toString().trim().split('\n');
let result = 0;
for(let word of words) {
let seen = new Set();
let isGroupWord = true;
let lastChar = '';
for(let char of word) {
if(char !== lastChar && seen.has(char)) {
isGroupWord = false;
break;
}
seen.add(char);
lastChar = char;
}
if(isGroupWord) result++;
}
console.log(result);
solution_includes, index 비교.
const fs = require('fs');
const file = process.platform === 'linux' ? '/dev/stdin' : __dirname+'/input.txt';
const [N, ...words] = fs.readFileSync(file).toString().trim().split('\n');
let answer = words.length;
let temp = '';
words.forEach((item) => {
temp = item[0];
for(let i=1; i<item.length; i++) {
if(temp.includes(item[i]) && item[i-1] !== item[i]) {
answer--;
break;
}
temp += item[i];
}
});
console.log(answer);
solution3_solution1과 유사한 방법.
const fs = require('fs');
const file = process.platform === 'linux' ? '/dev/stdin' : __dirname+'/input.txt';
const [N, ...words] = fs.readFileSync(file).toString().trim().split('\n');
let countGroupWord = 0;
for(let word of words) {
const letter = [];
let isGroupWord = true;
for(let j=0; j<word.length; j++) {
if(letter.indexOf(word[j]) === -1) {
letter.push(word[j]);
} else {
if(letter.indexOf(word[j]) !== letter.length -1) {
isGroupWord = false;
break;
}
}
}
if(isGroupWord) {
countGroupWord += 1;
}
}
console.log(countGroupWord);