[Baekjoon] 10101 - 삼각형 외우기

Chobby·2023년 10월 18일
1

Baekjoon

목록 보기
39/108

😀문제

창영이는 삼각형의 종류를 잘 구분하지 못한다. 따라서 프로그램을 이용해 이를 외우려고 한다.

삼각형의 세 각을 입력받은 다음,

세 각의 크기가 모두 60이면, Equilateral
세 각의 합이 180이고, 두 각이 같은 경우에는 Isosceles
세 각의 합이 180이고, 같은 각이 없는 경우에는 Scalene
세 각의 합이 180이 아닌 경우에는 Error
를 출력하는 프로그램을 작성하시오.


😁입력

총 3개의 줄에 걸쳐 삼각형의 각의 크기가 주어진다. 모든 정수는 0보다 크고, 180보다 작다.


😂출력

문제의 설명에 따라 Equilateral, Isosceles, Scalene, Error 중 하나를 출력한다.

예제 입력 1 
60
70
50
예제 출력 1 
Scalene

🤣출처

  • Olympiad > Canadian Computing Competition & Olympiad > 2014 > CCC 2014 Junior Division 1번
  • 문제를 번역한 사람: baekjoon
  • 데이터를 추가한 사람: choiking10
  • 문제의 오타를 찾은 사람: doju, qja0950

😃알고리즘 분류

  • 구현
  • 기하학

😎나의 풀이

const input = require('fs').readFileSync('/dev/stdin').toString().split('\n').map(a => Number(a))
const angleSum = input.reduce((acc, cur) => acc+cur, 0)

if(angleSum === 180) {
    // 같은 각의 갯수를 검사하며, 세 각이 같은 경우는 길이가 2, 두 각이 같은 경우는 1, 모두 다른 경우는 0이 출력됨
    const duplicatedAngle = input.filter((angle, angleIdx) => input.indexOf(angle) !== angleIdx).length
    
    if(duplicatedAngle === 2) {
        console.log('Equilateral')
    } else if(duplicatedAngle === 1) {
        console.log("Isosceles")
    } else {
        console.log("Scalene")
    }
} else {
    console.log('Error')
}
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글