본문 바로가기

Algorithm/Math

(100)
(C++) - LeetCode (easy) 367. Valid Perfect Square https://leetcode.com/problems/valid-perfect-square/description/ Valid Perfect Square - LeetCode Can you solve this real interview question? Valid Perfect Square - Given a positive integer num, return true if num is a perfect square or false otherwise. A perfect square is an integer that is the square of an integer. In other words, it is the product o leetcode.com 가우스의 제곱합 공식을 이용한 문제였습니다. 📕 풀이방법 ..
(C++) - LeetCode (easy) 231. Power of Two https://leetcode.com/problems/power-of-two/description/ Power of Two - LeetCode Power of Two - Given an integer n, return true if it is a power of two. Otherwise, return false. An integer n is a power of two, if there exists an integer x such that n == 2x. Example 1: Input: n = 1 Output: true Explanation: 20 = 1 Example 2: Input: n leetcode.com 수학 관련 함수를 사용해보는 문제였습니다. 📕 풀이방법 📔 풀이과정 1. log를 씌운다고 ..
(Python) - 백준(BOJ) 22938 : 백발백준하는 명사수 https://www.acmicpc.net/problem/22938 22938번: 백발백준하는 명사수 백발백준은 무슨 과녁이던 백발백중하여 올림픽 금메달보다 따기 어렵다는 대한민국 양궁 국가대표 타이틀을 가지고 있다. 이런 백발백준이 현재 연마하는 스킬이 있는데... 바로 두 과녁을 www.acmicpc.net 원의 성질을 이용하는 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 info, info2 선언 후 한 원의 중심 (x, y) 좌표와, 원의 반지름 r을 list형태로 입력받습니다.두 반지름의 합은 total_radian에, 원 좌표 사이의 거리를 구해 dist에 저장합니다. 📔 풀이과정 10^9까지의 범위이므로 좌표 사이의 거리로 제곱값을 구해야하는 상황에서 overflow가 납니다. 사직연산에 ..
(Rust) - 백준(BOJ) 15734 : 명장 남정훈 https://www.acmicpc.net/problem/15734 15734번: 명장 남정훈 오늘도 어김없이 피시방에서 피파를 하고 있는 정훈이는 큰 고민에 빠졌다. 자신에 팀에 있는 선수들의 주 사용 발(Main Foot)이 적절하게 나눠져있지 않기 때문이다. 정훈이의 팀에는 L명의 왼발 www.acmicpc.net 기준에 따라 적절히 나누는 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 한 줄을 입력받을 line, 각 발잡이 선수 l, r, a를 각각 선언 후 입력받습니다. 📔 풀이과정 양발잡이 선수들을 최대한 균형있게 배치해야 합니다.먼저 왼발잡이와 오른발잡이 선수의 차이를 diff를 선언해 저장합니다. 1. 양발잡이 선수가 diff보다 많다면 충분히 차이를 메꾸고 남습니다. 차이를 메꾸고 남은 ..
(C++) - 백준(BOJ) 8794 : Poniedziałki https://www.acmicpc.net/problem/8794 8794번: Poniedziałki Jarek szczerze nie cierpi poniedziałków. Zaraz po sylwestrze postanowił napisać program, który obliczy ile poniedziałków czeka go w nowym roku 2011. Ponieważ jest dobrym programistą, uogólnił program tak, aby dało się go używać także an inn www.acmicpc.net 달력에 대한 공식을 적용해 푼 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 test case z, 1년을 구성하는 일 수 n, 1주를 구성하는 일 수..
(C++) - 백준(BOJ) 9469 : 폰 노이만 https://www.acmicpc.net/problem/9469 9469번: 폰 노이만 250마일 길이의 철로 양 끝에 두 기차 A와 B가 있다. A는 시속 10마일, B는 시속 15마일로 서로를 향해 출발했다. 두 기차의 출발과 동시에 기차 A 앞에 붙어있던 파리 한 마리가 기차가 충돌할 때 까 www.acmicpc.net 간단한 수학공식을 이용한 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 철로 길이 d, 기차 a, b속력, 파리 속력 f, 기차가 부딪힐 때까지 걸리는 시간 timeLeft를 선언한 후 적절히 입력받습니다. 📔 풀이과정 시간 = 거리/속력입니다. 서로를 향해 출발하므로 다음 공식이 성립합니다. 시간 = d / (a+b) timeLeft에 해당 값을 저장합니다. 📔 정답출력 파리가 ..
(C++) - 백준(BOJ) 14490 : 백대열 https://www.acmicpc.net/problem/14490 14490번: 백대열 n과 m이 :을 사이에 두고 주어진다. (1 ≤ n, m ≤ 100,000,000) www.acmicpc.net 최대공약수를 구하는 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 n, m을 입력받습니다. 📔 풀이과정 n, m에 대해 유클리드 호제법으로 gcd를 구합니다. 📔 정답출력 n을 gcd로, m을 gcd로 나눈 값을 형식에 맞게 출력합니다. 📕 Code #include using namespace std; int n, m, GCD; int gcd(int a, int b){ if(!b) return a; return gcd(b, a%b); } int main(){ scanf("%d:%d",&n,&m); GCD ..
(C++) - 백준(BOJ) 24623 : Изгороди https://www.acmicpc.net/problem/24623 24623번: Изгороди Фермер Джон прокопал прямолинейную канаву длиной $2 \cdot n$ метров. Затем от середины канавы прокопал под углом $\alpha$ к предыдущей короткую кан www.acmicpc.net 간단한 수학문제였습니다. 📕 풀이방법 📔 입력 및 초기화 n, alpha를 선언 후 입력받습니다. 📔 풀이과정 빨간선으로 표시된 각도는 180 - a입니다. 파란선 부분은 (180 - a) / 2입니다. 핑크선 부분은 a / 2입니다. 정답은 파란선 부분 + 핑크선 부분의 각도가 됩니다. 📔 정답출력 (180 - a) ..