P 회사의 회계를 처리하던 은정은 커피를 마시다가 키보드에 커피를 쏟고 말았습니다.
휴지로 닦고 말려보았지만 숫자 3, 4, 6이 도통 눌리지 않습니다.
10분 뒤, 모든 직원들에게 월급을 입금해 주어야 합니다.
여유 키보드는 없으며, 프로그래밍을 매우 잘하고, 모든 작업을 수작업으로 하고 있습니다.
이에 눌리지 않는 키보드를 누르지 않고 월급 입금을 두 번에 나눠주고 싶습니다.
1. 직원은 2000명이며, 3초 이내 수행을 해야합니다.
2. 입력값의 형식은 csv파일형식이며 이과장,'3,000,000','S은행','100-0000-0000-0000' 형식으로 주어집니다.
3. 출력값의 형식은 csv파일형식이며 이과장,'1,500,000','1,500,000','S은행','100-0000-0000-000'입니다.
또는 '1,000,000','2,000,000','S은행','100-0000-0000-000'도 괜찮습니다.
/**
* 정보를 받아 월급을 두번으로 나눠주는 함수
*
* @param {string} INPUT '직원,'월급','은행','계좌''가 담긴 문자열
* @returns {string[]} 월급을 두번으로 나눈 정보
*/
function divideSalary(INPUT) {
const EMPLOYEE_LIST = INPUT.split('\n').map((el) => el.trim());
let result = [];
for (let employee of EMPLOYEE_LIST) {
const [_, SALARY] = employee.split("'");
let salary1 = '';
let salary2 = '';
for (let el of SALARY) {
if (el === ',') {
continue;
} else if (el == 3) {
salary1 += '1';
salary2 += '2';
} else if (el == 4) {
salary1 += '2';
salary2 += '2';
} else if (el == 6) {
salary1 += '1';
salary2 += '5';
} else {
salary1 += el;
salary2 += '0';
}
}
salary1 = parseInt(salary1).toLocaleString();
salary2 = parseInt(salary2).toLocaleString();
employee = employee.replace(SALARY, `${salary1}','${salary2}`);
result.push(employee);
}
return result;
}
function solution() {
const INPUT = `이대표,'333,356,766','S은행','100-0000-0000-001
최차장,'5,000,000','S은행','100-0000-0000-002'
이과장,'3,200,000','S은행','100-0000-0000-003'
홍팀장,'3,300,000','S은행','100-0000-0000-004'
이대리,'5,300,000','S은행','100-0000-0000-005'`;
const result = divideSalary(INPUT);
console.log(result);
}
solution();
'PS > 제코베 JS 100제' 카테고리의 다른 글
제코베 JS 100제 / 94 / 페이지 교체 - LRU 알고리즘 (0) | 2022.10.07 |
---|---|
제코베 JS 100제 / 93 / 페이지 교체 - 선입선출 알고리즘 (0) | 2022.10.07 |
제코베 JS 100제 / 91 / 반평균 등수 (0) | 2022.10.07 |
제코베 JS 100제 / 90 / 같은 의약 성분을 찾아라! (1) | 2022.10.04 |