[TIL] 24.08.26 MON

GDORI·2024년 8월 26일
0

TIL

목록 보기
22/79
post-thumbnail

오늘은 알고리즘 문제 풀고, 강의 조금 듣고 전 팀원들이랑 개인과제 리뷰하느라 게시글을 못 썼다.
조금이라도 적은 내용이다.


문제 1번


  • 풀이방식

1점을 득하기 위해서는 4루타가 필요하다.
2점을 득하기 위해서는? 8루타라고 생각할 수 있지만 기존 4루타에서 한명이 들어왔고, 1,2,3루에 사람이 있기 때문에, 1루타만 더 치면 되는 것이다.
그렇다면, 우리는 1점은 4루타, 2점은 5루타, 3점은 6루타 로 보았을 때 원하는 점수 +3만 더하면 점수에 필요한 안타수를 계산할 수 있다.
이기고 있을 때에는 칠 필요가 없고, 동점일 때에는 1점을 내야 이기니까 조건문으로 내걸고
위의 경우가 아닌 경우에 필요한 점수 +3 을 반환하면 된다.

  • JS코드
const solution = (dScore,kScore) => {
  return dScore>kScore ? 0 : Math.abs(dScore-kScore)+4
}

문제 2번


  • 풀이방식

몇일전에 풀었던 초밥집과 유형이 비슷하다. 슬라이딩 윈도우 기법을 이용하여 풀면 될 것 같다.
left와 right, count 변수를 만들어 비교하면서 풀면 될 것 같다.

  • JS코드

const solution = (nums, k) => {
  let left = 0;
  let cnt = 0;
  let maxLength = 0;

  for (let right = 0; right < nums.length; right++) {
    if (nums[right] === 0) {
      cnt++;
    }
    while (cnt > k) {
      if (nums[left] === 0) cnt--;
      left++;
    }
    maxLength = maxLength > right - left + 1 ? maxLength : right - left + 1;

  }

  return maxLength;
}

내일 시간 쪼개서 오늘 한것까지 정리하고 게시할 예정이다.

profile
하루 최소 1시간이라도 공부하자..

0개의 댓글