const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(filePath).toString().trim().split('');
let result = '';
let bigArr = []
let numArr = [];
let arr = []; //알파벳
for(let i=65; i < 91; i++) {
arr.push(String.fromCharCode(i));
}
input.forEach(element => {
bigArr.push(element.toUpperCase())
});
for(let i=0; i < arr.length; i++) {
for(let j=0; j < bigArr.length; j++) {
count = 0;
if(arr[i] === bigArr[j]) {
if(numArr[i] > 0) {
numArr[i] += 1;
} else {
numArr[i] = 1;
}
}
}
}
let max = 0;
let stop = false
for(let i=0; i < numArr.length; i++) {
if(max < numArr[i]) {
max = numArr[i];
} else if(max == numArr[i]) {
console.log('?')
stop = true;
}
}
if(stop == false) {
for(let i=0; i < numArr.length; i++) {
if(max === numArr[i]) {
console.log(arr[i])
}
}
}
애초에 오류가 많은 처음버전.
문제점: 많은알파벳의 개수가 중복일때 물음표가 여러개뜬다. 최대값이 같으면 ?을 출력하기로 했으니 당연 -> 이걸 break를 넣어 멈추게 했다.
for(let i=0; i < numArr.length; i++) {
if(max < numArr[i]) {
max = numArr[i];
} else if(max == numArr[i]) {
console.log('?')
stop = true;
break;
}
}
이부분만 수정했음. 오 또 안돼..~그래서 테스트인풋을 내가 다른거로 넣어보니 new오류가 발견됨
문제점: input을 abcdefd로 넣어보니 d가 중복된 수가2개로 가장많은데, 배열의 마지막에 d가 한번더 나와 D가 출력되어야 하는데 ?가 출력된다. 왜냐하면 이미 max === numArr[i]가 한번되면 stop = true로 굳어지기 때문이다. -> max < numArr[i] 일 때 stop = false를 추가하고 ?를 출력하는 문장을 stop == false가 아닐때 즉,else일 경우에 넣었다.
const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(filePath).toString().trim().split('');
let bigArr = []; //단어 대문자로 변경
let numArr = []; //알파벳 자리에 빈도수표시 배열
let arr = []; //알파벳대문자 배열
for(let i=65; i < 91; i++) {
arr.push(String.fromCharCode(i));
}
input.forEach(element => {
bigArr.push(element.toUpperCase())
});
for(let i=0; i < arr.length; i++) {
for(let j=0; j < bigArr.length; j++) {
if(arr[i] === bigArr[j]) {
if(numArr[i] > 0) {
numArr[i] += 1;
} else {
numArr[i] = 1;
}
}
}
}
let max = 0;
let stop = false;
for(let i=0; i < numArr.length; i++) {
if(max < numArr[i]) {
max = numArr[i];
stop = false;
} else if(max == numArr[i]) {
stop = true;
}
}
if(stop === false) {
for(let i=0; i < numArr.length; i++) {
if(max === numArr[i]) {
console.log(arr[i])
}
}
} else {
console.log('?')
}
성공.