level2 _ 멀쩡한 사각형

LOOPY·2022년 5월 3일
0

Programmers(연습문제)

목록 보기
53/63

나의 풀이


먼저 패턴을 찾아 가로와 세로의 길이를 홀수인 경우와 짝수인 경우로 나누어 풀이를 시도했으나 테스트케이스에서 오답이 생겨 포기한 후 구글링을 통해 가로+세로-최대공약수 라는 힌트를 얻어 다시 작성한 코드이다.

  1. (한 수가 0이 될 때 까지) a%b를 반복하여 최대 공약수를 구한다

    https://velog.io/@devjade/JavaScript%EB%A1%9C-%EC%B5%9C%EB%8C%80%EA%B3%B5%EC%95%BD%EC%88%98GCD-%EC%B5%9C%EC%86%8C%EA%B3%B5%EB%B0%B0%EC%88%98LCM-%EA%B5%AC%ED%95%98%EA%B8%B0

  2. 전체 사각형 개수(a*b)에서 잘린 부분 a+b-gcb를 빼 남은 사각형의 개수를 구한다

다른 풀이

일차함수의 기울기를 이용해 접근한 풀이이다. 훨씬 직관적인 듯 하다.🤓
1. slope에 대각선의 기울기를 저장하고
2. 1부터 정수인 좌표를 대입하여 (소숫점이 나올 경우 올림하고) 잘린 사각형의 수에 반영한다
3. 잘려나간 선의 아랫 부분이 전부 잘린 사각형으로 반영되었으므로, (h*w)-result의 2배를 남은 사각형으로 반환한다

profile
2년차 프론트엔드 개발자의 소소한 기록을 담습니다 :-)

0개의 댓글

관련 채용 정보