주어진 문자열을 가지고 아래 문제에 대한 프로그램을 작성해주세요. 구현 언어는 자유롭게 선정해주시고요.
로켓펀치 채용 공고를 보다가, CNP에서 출제한 문제가 있길래 한 가지를 풀어보았다. 출제자의 의도를 이해해보면서 문제를 풀어보았다.
원래대로라면, 서버에서 데이터를 조회해서 받아온 데이터 더미를 json.stringify 등을 이용해 객체로 가공해 사용하겠지만, 어짿든 이 문제의 요구대로 문자열로 초기 데이터를 세팅했다.
각각의 문제에 맞게 함수를 별도로 작성해 solutions라는 함수에서 실행되도록 위치시켰다.
const s = '이사부, 장보고, 대조영, 강감찬, 문익점, 이순신, 김두한, 이율곡, 이퇴계, 이사부, 장보고, 문익점, 이순신, 김두한, 이율곡, 이순신, 김두한, 이율곡, 김정민';
function generalFinder(obj) {
for(let key in obj) {
if (key === '이순신') console.log('이순신 장군님', obj[key]);
}
}
function familyNameCounter(obj) {
let kim = 0;
let lee = 0;
for(let key in obj) {
const familyName = key.split('')[0];
if (familyName === '김') {
kim += obj[key];
}
if (familyName === '이') {
lee += obj[key];
}
}
console.log('김씨는', kim);
console.log('이씨는', lee);
};
function duplicationRemover(arr) {
const uniqueArr = [...new Set(arr)];
console.log('중복제거', uniqueArr);
console.log('내림차순정렬', uniqueArr.sort().reverse());
}
function solutions(s) {
let obj = {};
const arr = s.split(', ');
console.log(arr);
for (let x of arr) {
obj[x] ? obj[x] += 1 : obj[x] = 1
}
console.log(obj);
generalFinder(obj);
familyNameCounter(obj);
duplicationRemover(arr);
}
console.log(solutions(s));