프로그래머스 코딩테스트 연습 회고록 - 3일차

H.GOO·2022년 11월 27일
0
post-thumbnail

프로그래머스 Lev.0 "종이 자르기"

문제 설명

문제 설명
머쓱이는 큰 종이를 1 x 1 크기로 자르려고 합니다. 예를 들어 2 x 2 크기의 종이를 1 x 1 크기로 자르려면 최소 가위질 세 번이 필요합니다.

정수 M, N이 매개변수로 주어질 때, M x N 크기의 종이를 최소로 가위질 해야하는 횟수를 return 하도록 solution 함수를 완성해보세요.

제한사항

  • 0 < M, N < 100
  • 종이를 겹쳐서 자를 수 없습니다.

입출력 예 설명




나의 풀이

내가 생각한 알고리즘은 다음과 같다.

  1. M 과 N 이 1인 예외 상황을 조건문으로 분리한다.

  2. 최종으로 자른 횟수를 구한다.


function solution(M, N) {
  var answer = 0;

  if (M !== 1 && N !== 1) {  // M 과 N 이 모두 1이 아닌 경우
    answer = M - 1 + (N - 1) * M;
  } else if (M === 1 && N !== 1) {  // M 이 1인 경우
    answer = N - 1;
  } else if (M !== 1 && N === 1) {  // N 이 1인 경우
    answer = M - 1;
  }
  return answer;
}



다른 사람 풀이 및 느낀점 - 1

// 출처: 프로그래머스 StarBlitz , 임동주 , TeTedo , ll04 , codeisneverodd 외 162 명의 풀이

function solution(M, N) {
    return M*N-1;
}

느낀점

  • 난.. 바보인가..?
  • 내 조건문 안의 식을 전개 하면 사실상 조건문이 필요없다.. 모든 조건에서 모두 같은 식이 나오기 때문이다...
  • react를 다룰 때에도 필요없는 전개식이나 조건문이 있는지 꼼꼼히 리팩토링 해야겠다는 생각이 들었다.

0개의 댓글