Algorithm/JavaScript

[프로그래머스] 멀쩡한 사각형

🥭맹2 2021. 5. 8. 01:34

1. 문제

programmers.co.kr/learn/courses/30/lessons/62048?language=javascript

 

코딩테스트 연습 - 멀쩡한 사각형

가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을

programmers.co.kr

2. 접근 방법

처음에 일차함수로 접근해서, 아래쪽 부분만 다 더해주고 *2로 해줬다.

근데 이렇게 할 경우 테스트 6번 빼고 모두 통과한다.

6번이 왜 안되는지 확인해봤더니, 기울기 값이 오차범위 때문에 일부 값이 손실되어서 반환 값이 다르게 나온다고 한다.

ㅋㅋㅋㅋㅋㅋㅋㅋ ㅠㅠ

그래서 w, h 중 더 작은 수를 a에 넣고 더 큰 수를 b에 넣고 확인해보니까

기울기를 (더 작은 수 / 더 큰 수)로 하면 해당 오류가 나타나지 않았다.

(더 큰 수 / 더 작은 수)로 하면 6번 케이스 통과 못 함 !

3. 코드

Javascript

function solution(w, h) {
    var answer = 0;
    const [a, b] = [Math.min(w, h), Math.max(w, h)]
    for (let i=1; i<b; i++) {
        answer += Math.floor((a / b) * i)
    }
    return answer*2;
}

4. 마치며

이상함다 ! 흥

'Algorithm > JavaScript' 카테고리의 다른 글

[프로그래머스] 프린터  (0) 2021.05.08
[프로그래머스] 오픈채팅방  (0) 2021.05.08
[프로그래머스] 문자열 압축  (0) 2021.05.07
[프로그래머스] 기능개발  (0) 2021.05.07
[프로그래머스] 짝수와 홀수  (0) 2021.05.07