본문 바로가기

수학21

[ 자바스크립트(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.
[ 파이썬(python) ] 백준 18110 - solved.ac 📍 백준 18110 - solved.ac 백준 18110 - solved.ac 💡 나의 풀이 단순 round 함수로만 풀었더니 오답판정이 나온 문제였다. 난이도가 딱히 어렵지 않은데 왜 실버 4인가 했더니 부동소수점을 이해하고 있어야만 문제를 풀 수 있어서였다. 절사평균과 반올림에 관해 작성한 이전글을 보면 조금이나마 이해 할 수 있다. 의견이 없는 경우와 있는 경우로 나누어 푼다. 없는 경우는 print(0)을 출력한다. 있는 경우는 절사평균 -> 정렬 -> 슬라이싱의 과정을 거친다. 이때, round 함수는 사사오입 반올림이 적용되게 만든다. # 나의 코드 import sys input = sys.stdin.readline def round2(num): return int(num) + (1 if nu.. 2021. 7. 13.
[ 파이썬(python) ] 백준 2292 - 벌집 📍 백준 2292 - 벌집 백준 2292 - 벌집 ⚡️ 나의 풀이 계차수열을 수학적으로 구현 할 수 있는지 묻는 문제이다. 규칙을 자세히보면 1, 7, 19, 37, 81...인데 여기서 계차는 6의 배수만큼 증가한다. 즉, equation = equation + (6 * i)에서 결과값에 +1씩 더한 값이 된다. 하지만 반복문 안에 +1을 넣으면 +1이 들어간채로 누적되기때문에 값이 달라진다. 따라서 조건절에서 +1을 넣고 n과 비교했다. 다른 사람의 풀이를 봤는데 while문으로 간단하게 풀었다. 놀랐다. cnt를 따로 쓸 생각을 하지 않고 i값으로 출력 할수도 있구나라는 생각을 했다. 그리고 왜 1일때의 조건은 따로 안넣어줬는지 의문이 생겼는데, 1일때는 while문에 걸리지 않기때문에 생략했다. .. 2021. 6. 18.
[ 파이썬(python) ] 백준 6359 - 만취한 상범 📍 백준 6359 - 만취한 상범 백준 6359 - 만취한 상범 ⚡️ 나의 풀이 언뜻 보면 저번에 풀었던 백준 1244 - 스위치 켜고 끄기문제와 비슷한데, 범위 전체를 살펴보면서 상태를 바꾼다는 점이 조금 다르다. (1244 문제는 주어진 n의 배수만 상태를 바꾸면 됐음) 주어진 문제 그대로 구현하다보니까 생각을 잘 못했는데 1 ~ 2 라운드도 3 ~ k 라운드와 마찬가지로 열려있으면 잠그고, 잠겨있다면 여는 방법을 사용해도 답은 같게 나온다. 1, 0 상태를 바꿀 때 🍯 tip인데 if not gate[j]: gate[j] = 1 or if gate[j]: gate[j] = 0 대신 gate[j] = (gate[j] + 1) % 2를 사용해도 결과는 같지만 코드는 훨씬 간결해진다. 이전 에 공부한 내.. 2021. 6. 18.
[ 파이썬(python) ] 백준 1292 - 쉽게 푸는 문제 📍 백준 1292 - 쉽게 푸는 문제 백준 1292 - 쉽게 푸는 문제 ⚡️ 나의 풀이 문제 이름은 쉽게 푸는 문제였는데 나는 어렵게 푼 문제였다. 구간의 시작과 끝을 기준으로 구간 합을 구해야 하기 때문에 prefix_sum을 이용했다. 1, 2, 2, 3, 3, 3, 4, 4, 4, 4 ... 수열을 만들 때 더 쉽게 떠올릴 수 있어야 하는데 str형으로 어렵게 푼 것 같다. 나의 풀이 arr에 0을 넣은 상태로 선언한다. (index 고려) a, b를 입력받는데 b는 index를 고려할 값이기 때문에 반복문의 범위를 반으로 줄였다. cnt는 1씩 증가하면서 똑같은 값이 하나씩 증가한다. 현재 항과 이전 항을 더해 누적 합을 계산해준다. arr[b] - arr[a-1]으로 구간 합을 구한다. 정답판정.. 2021. 6. 17.