현인
[프로그래머스] 멀쩡한 사각형 with JS 본문
알고리즘 스프린트 8일차 - [프로그래머스] Lv 2. 멀쩡한 사각형
https://school.programmers.co.kr/learn/courses/30/lessons/62048
소요시간
1시간
문제 접근 방식은 빨리 찾았지만 자료형 처리가 난관이었다...
계획
어떻게 풀까 고민을 하면서 수학적으로 접근하면 좋을 것 같다는 생각이 들었고, 일차 방정식을 활용한 풀이가 떠올랐다
풀이
- answer에 전체 영역의 넓이를 저장한다
- 대각선을 1차 방정식으로 보고 기울기를 w/h로 구한다
- 방정식의 치역의 범위를 계산 하기위해 치역의 시작값을 0으로 미리 설정한다.
- 1부터 w까지 방정식에 대입하고 해를 구한다
- 구해진 해를 올림하여 방정식의 치역의 끝값을 구한 뒤 범위를 계산한다.
- 치역의 범위를 answer에서 빼준다
- 구해진 해를 내림하여 치역의 시작값을 갱신한다
- answer 반환
결과
코드
더보기
function solution(w, h) {
let answer = BigInt(w*h);
let start = 0;
for(i = 1; i <= w; i++){
let temp = h*i/w;
let end = Math.ceil(temp);
answer -= BigInt(end - start);
start = Math.floor(temp);
}
return answer;
}
마치며
자바스크립트로 알고리즘 문제를 푼지 2주정도 되어 가는데 처음으로 자바스크립트에 실망한 문제.. 소수점 처리가 정확하지 않아서 계속 틀리는 케이스가 생겼다.. 라이브러리 안쓰고 어떻게 풀어야 할지 고민을 더 해봐야겠다.. 이상!
반응형
'알고리즘' 카테고리의 다른 글
[프로그래머스] 징검다리 건너기 with JS (0) | 2023.04.02 |
---|---|
[프로그래머스] 피로도 with JS (0) | 2023.03.31 |
[프로그래머스] 조이스틱 with JS (0) | 2023.03.30 |
[프로그래머스] 양궁대회 with JS (0) | 2023.03.29 |
[프로그래머스] 카카오 프렌즈 컬러링북 with Java (0) | 2023.03.29 |