https://www.acmicpc.net/problem/3049
대각선의 개수, 교차점으로 만들어지는 도형 등 별별 규칙을 다 찾아봤는데 알고 보니 조합이었다. 하..
굉장히 허무하지만 암튼 풀었다..
const fs = require('fs');
const input = fs.readFileSync('input.txt').toString().split('\n');
const angle = Number(input);
const arr = Array.from({ length: 4 }, (_, idx) => angle - idx);
console.log(arr.reduce((a, c) => a * c, 1) / 24);
--
처음엔 이렇게 작성했는데, 다른 분이 제출한 답안을 보고 아주 머리가 띵했다..
뭘 위해 나는 이렇게 허세 가득한 코드를 짜는지..
const fs = require('fs');
let input = +fs.readFileSync('/dev/stdin').toString();
console.log((input--*input--*input--*input) / 24);
메모리와 시간 복잡도 면에서는 큰 차이를 보이지 않지만, 굳이 array
를 만들고 메서드를 사용할 필요가 있었을까 의문이 든다.
앞으로는 코드를 쉽고 직관적으로 작성하기 위한 노력도 겸해야겠다☃️
--
근데 글을 작성하면서 다시 생각해보니 유지/보수 측면에서는 내 코드가 훨씬 좋은 것 같다.
그래도 코딩 테스트 특성 상 문제를 빠르고 직관적으로 풀어야 하니 분명 의미 있는 깨달음이라 생각한다👻