Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- sort
- OSI 7계층
- MUI
- 백준 nodeJS
- 정규표현식
- 버블정렬
- nodejs
- 알고리즘
- Native select
- javascript
- 재귀함수
- next/Image
- CSS
- 페이지네이션
- 프론트엔드
- 유데미
- primitive type
- 자바스크립트
- input class
- react js
- 자료구조
- JavaScript Deep Dive
- 이벤트 루프
- Node js
- 백준
- 코드스테이츠
- 배열
- kakao map api
- 코드스테이츠 메인프로젝트
- 코딩테스트
Archives
- Today
- Total
신입 개발자에서 시니어 개발자가 되기까지
[백준 nodeJS] 4153 직각삼각형 본문
고심했거나 헤맸던 문제는 아니지만, 문제를 푸는 도중에 목도한 에러가 공부가 되어서 포스팅 해본다.
문제
과거 이집트인들은 각 변들의 길이가 3, 4, 5인 삼각형이 직각 삼각형인것을 알아냈다. 주어진 세변의 길이로 삼각형이 직각인지 아닌지 구분하시오.
입력
입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다.
출력
각 입력에 대해 직각 삼각형이 맞다면 "right", 아니라면 "wrong"을 출력한다.
로직
피타고라스의 정리를 이용한다. 이 문제의 핵심은 가장 긴 빗변의 길이를 어떻게 알아내는가인 듯 하다.
나는 오름차순으로 정렬해서 알아냈다.
코드
const input = require("fs").readFileSync("example.txt").toString().trim();
let triangle = input.split("\n");
let newArr = [];
let result = [];
for (let i = 0; i < triangle.length - 1; i++) {
makeArray(triangle[i]);
}
function makeArray(string) {
let array = string.split(" ").map(Number);
newArr.push(array);
}
for (let i = 0; i < newArr.length; i++) {
let eachTriangle = newArr[i].sort((a, b) => a - b);
if (eachTriangle[2] ** 2 === eachTriangle[1] ** 2 + eachTriangle[0] ** 2) {
result.push("right");
} else {
result.push("wrong");
}
}
console.log(result.join("\n"));
'javascript > 알고리즘' 카테고리의 다른 글
알고리즘 - 0을 기준으로 문자를 나누는 법(feat. 정규표현식) (0) | 2023.03.09 |
---|---|
[백준 nodeJS] 2477 참외밭 (0) | 2022.10.30 |
[백준 nodeJS] 3009 네 번째 점 찾기 (0) | 2022.10.25 |
[백준 node JS] 24060 알고리즘 수업 - 병합정렬1 (1) | 2022.10.20 |
[백준 nodeJS] 18258 큐2 (0) | 2022.10.19 |