본문 바로가기

Algorithm272

[ 자바스크립트(JavaScript) ] 03 - 연필 개수 📍 03 - 연필 개수 1 다스는 12자루씩 들어가므로 12자리로 나눴을 때 나머지가 있다면 몫에 +1을 하는 방법도 있지만, 그보다 간편하게 Math.ceil 함수로 몫에 소수점이 있으면 +1 시켜줄 수 있다. python에서는 Math 라이브러리를 호출해야 됐는데 JS에서는 import없이 사용 가능해서 편하다. 처음에는 음수 floor를 이용해서 풀었다. console.log(solution(25)); // 음수 floor function solution(n) { return -(Math.floor(-n / 12)); } // Math.ceil function solution1(n){ return Math.ceil(n / 12); } 2021. 8. 10.
[ 자바스크립트(JavaScript) ] 02 - 삼각형 판별하기 📍 02 - 삼각형 판별하기 c의 길이가 가장 클 때, a + b > c를 만족하면 삼각형을 만들 수 있는 조건이 충족된다. 하지만, 입력에서 매번 같은 자리에 max길이가 들어오는것이 아니므로, 어떤 위치에서 변수의 길이가 가장 긴지 확인해야한다. 이전에 풀었던 세 수 중 최솟값 문제에서 min의 값을 추렸다면, 이번엔 반대로 max의 값을 찾아야한다. 이후 max의 값을 찾았다면, 1번 코드처럼 각각의 조건을 달아 하드코딩해도 되지만, 2번 코드처럼 a + b + c에서 max를 뺀 값이 max보다 크면 삼각형이 성립하기 때문에 더욱 간단하게 작성 할 수 있다. // 1번 코드 console.log(solution(6, 7, 11)); function solution(a, b, c) { let max.. 2021. 8. 9.
[ 자바스크립트(JavaScript) ] 01 - 세 수 중 최솟값 📍 01 - 세 수 중 최솟값 이번 섹션은 `JS`의 기본적인 문법을 익혀 쉬운 문제를 풀어보는 섹션이다. 3개의 입력 중 가장 작은 수를 구하는 문제다. 먼저, 제일 작은 값을 a라고 가정한 다음, a와 b의 대소 관계를 비교하고, c와의 대소관계를 비교한 다음 answer를 return 해줬다. // 나의 코드 console.log(solution(6, 5, 22)); function solution(a, b, c) { let answer = a; if (answer > b) { answer = b; } if (answer > c) { answer = c; } return answer; } 2021. 8. 9.
[ 자바스크립트(JavaScript), Node.js ] 백준 2525 - 오븐 시계 📍 백준 2525 - 오븐 시계 백준 2525 - 오븐 시계 💡 나의 풀이 현재 시간에서 조리시간만큼 지나면 몇 시 몇 분이 되는지 구하는 문젠데 너무 어렵게 풀었다. 다른 사람의 코드를 보니까 거의 50% 짧게 써서 놀라웠다. 나는 이렇게 풀었다. 조리에 걸리는시간(cookTime)을 60으로 나눈 몫(/)은 현재시간(curHour)에 더하고, 나머지(%)는 현재분(curMin)에 더한다. while문을 사용하여 현재 시간이 24보다 작고 현재분이 60보다 작을 때 while 문을 탈출하도록 설정했다. 시간, 분 조건을 따로따로 걸어줬다. 그런데 이렇게 안 해도, 매 계산마다 hour를 비교할 필요 없이 while문에 min만 넣으면 쉽게 풀 수 있다. 즉, min이 60보다 작을 때 반복문을 탈출하게.. 2021. 8. 6.
[ 자바스크립트(JavaScript), Node.js ] 백준 1075 - 나누기 📍 백준 1075 - 나누기 백준 1075 - 나누기 💡 나의 풀이 뒤 두 자리를 가능하면 작게 만들려고 한다는 문장에서 while문을 사용하여 1씩 증가하면서 나누어 떨어지는지 확인하는 로직을 생각했다. 처음 number을 초기화 할 때 형을 string => number로 바꾸는 불 필요한 연산 때문에 코드가 괜히 길어 보여 다른방법을 곰곰이 생각해보니까 number형으로만 계산해도 됐었다. number은 다음과 같은 방법으로도 초기화 할 수 있다. let number = +((("" + n/100) | 0) + "00"); // 불 필요한 연산이 많은 코드 let number2 = parseInt(n/100) * 100 // 가독성이 좋아진 코드 // 나의 코드 const fs = require(".. 2021. 8. 4.