Jungle 4 developer
[BOJ] 5086 배수와 약수
[BOJ] 5086 배수와 약수
2022.02.07약수도, 배수도 아니라면 서로소이다. #include int main() { std::cin.tie(0); std::cout.tie(0); std::cin.sync_with_stdio(false); std::cout.sync_with_stdio(false); int A = 0; int B = 0; for (;;) { std::cin >> A; std::cin >> B; if (0 == A || 0 == B) break; if (0 == B % A) { std::cout
[BOJ] 13305 주유소 - 그리디 알고리즘.
[BOJ] 13305 주유소 - 그리디 알고리즘.
2022.02.07매우 간단한 문제이다. 배열을 순회하며 도시를 지날때마다 요금을 정산하는 식으로 한다. 우선 바로 이전 도시에서 해당 도시까지 달린 요금을 정산한다. 물론 저장된 최저기름값으로 한다. 이러면 기름값이 가장 싼 도시에서 미리 주유한것과 같다. 해당 도시의 기름값이 더 싸다면 최저기름값을 업데이트하고, 다음도시로 향하면 된다. #include int NumOfCity = 0; unsigned long long GasPrice[100001] = { 0 , }; unsigned long long DistanceToNextCity[100001] = { 0 , }; int main() { std::cin.sync_with_stdio(false); std::cout.sync_with_stdio(false); std:..
[BOJ] 1541 잃어버린 괄호 - 그리디 알고리즘
[BOJ] 1541 잃어버린 괄호 - 그리디 알고리즘
2022.02.06매우 간단한 문제이다. 마이너스가 한번 뜨면 그 이후로는 무조건 음수로 만들수 있다. WHY? 그 이후에 오는 연산자가 + 이면 괄호로 합쳐서 음수로 만들수 있고, 연산자가 - 라면 그 이후에 괄호를 칠 수 있고, 이후의 식이 또 다시 음수가 되기 때문이다. 예를 들어 10 - 20 + 30 + 40 - 50 + 60 이라고 하자. 다음과 괄호를 칠 수 있다. 10 -(20 + 30 + 40) - (50 + 60) 10 -20 + 30 + 40 + 50 + 60 이라면? 10 -(20 + 30 + 40 + 50 + 60) #include charbuffer[1024] = { 0 , }; charoperators[100] = { 0 , }; intNumbers[100] = { 0 , }; inttempNu..
[BOJ] 11399 ATM - 그리디 알고리즘
[BOJ] 11399 ATM - 그리디 알고리즘
2022.02.06시간이 오래걸리는 사람은 뒤에 두는 것이 무조건 이득이다. 앞에다 두면 둘수록 뒤의 인원에 시간이 더해지기 때문이다. 정말 간단하다.1 , 4 , 8 을 보자. 8을 맨 앞에 배치하면 8이 3번 더해진다. 1을 맨 앞에 배치하면 1이 3번 더해진다. 4를 맨 앞에 배치하면 4가 3번 더해진다. 각 인원의 ATM 인출시간을 정렬한다. 그리고 뒤에 남은 인원의 수에 자신의 소요시간을 곱해서 차례로 더해나간다. #include #include int Time[1001]; int N; int main() { std::cin.tie(0); std::cout.tie(0); std::cin.sync_with_stdio(false); std::cout.sync_with_stdio(false); std::cin >> N..
[BOJ] 11047 동전 0 - 그리디 알고리즘
[BOJ] 11047 동전 0 - 그리디 알고리즘
2022.02.06큰 동전의 액면가는 작은 동전의 액면가로 무조건 나누어 떨어진다. 다음과 같은 식이다. 5000 1000 500 100 50 25 5 따라서 문제는 간단해진다. 작은 액면가의 동전을 큰 액면가의 동전으로 바꾸어 나가면 된다. 간단한 예를 들어보자. 280원을 만드려고 한다면, 우선 5 원짜리 56개로 시작한다. 5원 짜리에서 25원 짜리로 가기위해선 5원짜리 5개가 필요하다. 25원짜리 11개와 5원 짜리 1개로 바꾼다. 위와 같은 식으로 그냥 바꿔나가기만 하면 답이 된다. 너무 간단하다. #include int Balance[11] = { 0 , }; int CoinValues[11] = { 0 , }; int N = 0; int K = 0; int main() { std::cin.tie(0); std..