알고리즘/백준
-
백준 1011_Fly me to the Alpha Centauri알고리즘/백준 2020. 10. 17. 17:45
www.acmicpc.net/problem/1011 1011번: Fly me to the Alpha Centauri 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행�� www.acmicpc.net 1 2 2 3 3 4 4 5 5 6 6 으로 더해지면서 이동 횟수가 늘어나는 규칙으로 아래와 같이 짰는데, 시간초과가 나왔었다. #include long func(long r) { int i,j; int cnt; if(r
-
백준 2869_달팽이는 올라가고 싶다알고리즘/백준 2020. 10. 11. 14:29
https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net 낮에 꼭대기 까지 올라가는 경우를 제외해야하므로 V-A까지의 높이를 오른다고 생각하고 날짜를 하루 더해준다. 만약 (V-A)가 (A-B)로 나누어 떨어지지 않으면 2일을 더해준다. (1 or 2) + (V-A)/(A-B) #include int main() { long A,B,V; long day=1; scanf("%ld %ld %ld", &A, &B, &V); if((V-A)%(A-B)) day++; day+=(V-A)/(A-B); printf("%ld..
-
백준 2292_벌집알고리즘/백준 2020. 10. 11. 14:17
https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌�� www.acmicpc.net 최소거리는 감싸진 횟수와 동일하다. 1 6 12 18 24 ... #include int main() { int N; int sum=1; int n=1; scanf("%d", &N); while(sum < N){ sum += 6*n++; } printf("%d\n", n); return 0; }
-
백준 2839_설탕 배달알고리즘/백준 2020. 10. 11. 14:09
https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그�� www.acmicpc.net 최대한 적은 봉지를 들고간다 -> 최대한 5kg봉지를 많이 들고간다. 따라서 5로 나누어 떨어지면, 몫이 답이된다. 만약 5로 바로 나누어 떨어지지 않으면 3kg봉지를 하나씩 늘려가면서 봉지를 세면 된다. 안나눠 떨어질경우 -1출력 #include int main() { int N, result=0; scanf("%d", &N); //3~5000 while(N%5!=0){ N-=3; result++; }..
-
백준 1712_손익분기점알고리즘/백준 2020. 10. 10. 19:43
www.acmicpc.net/problem/1712 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net 매년 나가는 고정 비용 : A만원 한대의 노트북을 생산하기 위한 가변 비용 : B만원 노트북을 한대 생산하기 위한 비용 A+B 노트북을 N대 생산하기 위한 비용 A+B*N 노트북 가격C만원 일때, 생산 수를 늘려가다보면 총수입이 총비용보다 많아지는 시점이 손익분기점(Break-even point)가 됨 C*N >= A+B*N 이 true가 되는 시점의 N을 구하면됨 A+B*N - C*N =< 0 A+N*(B-C) =..
-
백준 1065_한수알고리즘/백준 2020. 10. 9. 10:54
https://www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 �� www.acmicpc.net 한수? 한수는 각 자리수가 등차수열을 이루는 수를 칭한다. 또한 한자리수와 두자리수의 경우 모두 한수에 포함된다. ex) 135 +2의 공차를 가짐, 840 -4의 공차를 가짐 문제에서 N의 범위를 1~1000으로 줬기 떄문에 아래와 같이 풀이 할 수 있다. #include int check_hansu(int num){ int a=num/100; int b=(num%100)/10; int c=n..
-
백준 1110_더하기 사이클알고리즘/백준 2020. 10. 9. 10:24
https://www.acmicpc.net/problem/1110 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net #include int return_n(int p, int q){ return q*10 + (p+q)%10; } int main() { int N,n; //N 0~99 int a,b; //ab int clen=0; scanf("%d", &N); n=N; do{ a=n/10; b=n%10; n=return_n(a,b); clen++; }while(N!=n); printf("%d\n",..
-
백준 2193_이친수알고리즘/백준 2020. 8. 17. 10:46
https://www.acmicpc.net/problem/2193 2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않 www.acmicpc.net 손으로 끄적거리다보면 피보나치수열과 비슷함을 알 수 있다. 1 1 2 3 5 7 ... #include int main(){ int i,n; int result=1, a=1, b=1; scanf("%d",&n); for(i=2;i