BaGyun
빠균's 개발노트
BaGyun
전체 방문자
오늘
어제
  • 분류 전체보기 (71)
    • Today I Learned (44)
      • 오류 (8)
      • JavaScript (15)
      • TypeScript (9)
      • NodeJS (0)
      • NestJS (0)
      • Database (3)
      • ORM (1)
      • 알고리즘 (2)
      • 개인공부 (4)
      • Deploy (0)
      • Git (1)
    • 개인프로젝트 (4)
    • 알고리즘 (14)
      • 프로그래머스 (14)
    • 면접질문 (5)
    • 회고 (3)

인기 글

반응형

블로그 메뉴

  • 홈
  • 태그
  • 방명록
hELLO · Designed By 정상우.
BaGyun

빠균's 개발노트

알고리즘/프로그래머스

[프로그래머스] 기능개발

2022. 8. 2. 20:46
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

나의 풀이

function solution(progresses, speeds) {
    var answer = [];
    let arr = []
    let count = 1
    for(i=0; i<progresses.length; i++){
        if(progresses[i] < 100){
            arr.push(Math.ceil((100-progresses[i])/speeds[i]))
        }
    }
    let maxDay = arr[0];
    
    for (let i = 1; i < arr.length; i++) {
        if (arr[i] <= maxDay){
            count++;
        } else {
            maxDay = arr[i];
            answer.push(count);
            count = 1;
    }
  }
  answer.push(count);
    
  return answer;
}

arr 배열에 작업이 끝나기까지 남은 일수들을 넣기 위해서 Math.ceil로 소수점이 있다면 올림처리를 해서 일수를 구한 뒤,

maxDay라는 변수를 만들어 0번째 인덱스부터 i번째까지 차례대로 비교를 한 count값을 마지막 리턴해줄 answer에 넣어주면 테스트 케이스가 전부 통과가 된다.

베스트 풀이

function solution(progresses, speeds) {
    let answer = [0];
    let days = progresses.map((progress, index) => Math.ceil((100 - progress) / speeds[index]));
    let maxDay = days[0];

    for(let i = 0, j = 0; i< days.length; i++){
        if(days[i] <= maxDay) {
            answer[j] += 1;
        } else {
            maxDay = days[i];
            answer[++j] = 1;
        }
    }

    return answer;
}

나의 풀이와 도달하는 방법은 어느정도 비슷했던거 같아 잘 풀었구나란 생각이 들긴 했으나, map을 이용하면 더 깔끔한 코드를 얻을 수 있다는 점과 ++를 앞에 붙여서 표현해준것이 인상 깊었다.

'알고리즘 > 프로그래머스' 카테고리의 다른 글

[프로그래머스] 예산  (0) 2022.08.02
[프로그래머스] 3진법 뒤집기  (0) 2022.08.02
[프로그래머스] 약수의 개수와 덧셈  (0) 2022.07.29
[프로그래머스] 실패율  (0) 2022.07.29
[프로그래머스] 모의고사  (0) 2022.07.29
    '알고리즘/프로그래머스' 카테고리의 다른 글
    • [프로그래머스] 예산
    • [프로그래머스] 3진법 뒤집기
    • [프로그래머스] 약수의 개수와 덧셈
    • [프로그래머스] 실패율
    BaGyun
    BaGyun

    티스토리툴바