KimMinJun
Coding Note
KimMinJun
전체 방문자
오늘
어제
  • 분류 전체보기 (487)
    • ALGORITHM (11)
      • 정렬 (6)
      • 최단경로 (1)
      • 자료구조 (1)
      • 슬라이딩 윈도우 (1)
      • etc (2)
    • Git (5)
    • Web (24)
      • Vanilla JS (13)
      • TS (2)
      • React (7)
      • ETC (1)
    • React 공식문서 (번역, 공부) (11)
      • Quick Start (2)
      • Installation (0)
      • Describing the UI (9)
      • Adding Interactivity (0)
      • Managing State (0)
      • Escape Hatches (0)
    • Next.js 공식문서 (번역, 공부) (3)
      • Getting Started (2)
      • Building Your Application (1)
    • PS (432)
      • 백준 (187)
      • Programmers (105)
      • CodeUp (21)
      • STL (3)
      • 제코베 JS 100제 (50)
      • SWEA (0)
      • LeetCode (65)
    • IT (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 관리

공지사항

인기 글

태그

  • 백준
  • Level 2
  • Level 1
  • tree
  • Level 0
  • string
  • 다이나믹 프로그래밍
  • LeetCode
  • programmers
  • 수학
  • codeup
  • 그래프
  • 정렬
  • recursion
  • js
  • 문자열
  • 제코베 JS 100제
  • C
  • Level1
  • C++

최근 댓글

최근 글

hELLO · Designed By 정상우.
KimMinJun
PS/제코베 JS 100제

제코베 JS 100제 / 92 / 키보드 고장

제코베 JS 100제 / 92 / 키보드 고장
PS/제코베 JS 100제

제코베 JS 100제 / 92 / 키보드 고장

2022. 10. 7. 00:47

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
    'PS/제코베 JS 100제' 카테고리의 다른 글
    • 제코베 JS 100제 / 94 / 페이지 교체 - LRU 알고리즘
    • 제코베 JS 100제 / 93 / 페이지 교체 - 선입선출 알고리즘
    • 제코베 JS 100제 / 91 / 반평균 등수
    • 제코베 JS 100제 / 90 / 같은 의약 성분을 찾아라!
    KimMinJun
    KimMinJun

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.