Koder / 박성훈
article thumbnail
백준 BOJ 1149 - RGB거리
알고리즘/백준 BOJ 2020. 12. 28. 14:49

https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 배열을 어떻게 만들어야 할지 고민했던 문제. dp배열을 만든 뒤로는 그냥 무난하게 풀어냈다. #include int dp[1001][3] = {0}; int min(int a, int b){ return a>b?b:a; } int index(int k){ if(k==3){return 0;} if(k==-1){return 2;} return k; } int main(){ int..

article thumbnail
백준 BOJ 2749 - 피보나치 수 3
알고리즘/백준 BOJ 2020. 12. 28. 14:46

https://www.acmicpc.net/problem/2749 2749번: 피보나치 수 3 첫째 줄에 n이 주어진다. n은 1,000,000,000,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 피사노 주기라는 개념을 찾기 전까지는 해답에 도달하기 힘든 문제... ​ https://www.acmicpc.net/problem/9471 9471번: 피사노 주기 첫째 줄에 테스트 케이스의 개수 P (1 ≤ P ≤ 1000)가 주어진다. 각 테스트 케이스는 N과 M으로 이루어져 있다. N은 테스트 케이스의 번호이고, M은 문제에서 설명한 m이다. (2 ≤ M ≤ 1,000,000) www.acmicpc.net 이 문제에서 피사노 주기의 개념을 설명해주고 있다. 피보나치 수열을..

article thumbnail
백준 BOJ 1016 - 제곱 ㄴㄴ 수
알고리즘/백준 BOJ 2020. 12. 18. 22:37

https://www.acmicpc.net/problem/1016 1016번: 제곱 ㄴㄴ 수 첫째 줄에 min과 max가 주어진다. min은 1보다 크거나 같고, 1,000,000,000,000보다 작거나 같은 자연수이고, max는 min보다 크거나 같고, min+1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 시간초과가 나서 되게 고민했던 문제. #include #include #define ll long long int bool chk[1000001] = {0}; int main(){ ll min,max; ll sum = 0; scanf("%lld %lld", &min, &max); sum = max - min + 1; for(ll i=2; i*i

article thumbnail
백준 BOJ 1744 - 수 묶기
알고리즘/백준 BOJ 2020. 12. 18. 22:35

if문 처리가 굉장히 어마어마하게 귀찮았던문제 마치 ' 두 박스 ' 를 연상시킨다 좀 더 고민하면 잘 줄여낼수있을거같긴한데... ​ https://www.acmicpc.net/problem/1744 1744번: 수 묶기 길이가 N인 수열이 주어졌을 때, 그 수열의 합을 구하려고 한다. 하지만, 그냥 그 수열의 합을 모두 더해서 구하는 것이 아니라, 수열의 두 수를 묶으려고 한다. 어떤 수를 묶으려고 할 때, 위치에 www.acmicpc.net #include #include int arr[10001] = {0}; int main(){ int n,ans=0; scanf("%d", &n); for(int i=0; i=1; i--){ if((arr[i-1]>0 && arr[i-1]!=1) || (arr[i]

article thumbnail
백준 BOJ 4811 - 알약
알고리즘/백준 BOJ 2020. 12. 18. 22:20

2차원 DP 를 통해 풀어줄 수 있다. www.acmicpc.net/problem/4811 4811번: 알약 입력은 최대 1000개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄이며, 병에 들어있는 약의 개수 N ≤ 30 가 주어진다. 입력의 마지막 줄에는 0이 하나 주어진다. www.acmicpc.net dp[a][b]는 완벽한 상태의 알약이 a개, 반개짜리 알약이 b개일때의 문자열의 개수이다. 완벽한 알약을 하나 복용하고 반개짜리 알약으로 만들어 줄 수 있으므로, dp[a-1][b+1]의 경우가 생길 수 있고, 반개짜리 알약이 있는 경우 ( b > 0 ) 에는 반개짜리를 먹는 경우도 추가로 더해준다. 굳이 a==0 && b==0일때 탈출하지 않는 이유는 어차피 dp[a][k]에서 a가 ..

article thumbnail
백준 BOJ 20309 - 트리플 소트
알고리즘/백준 BOJ 2020. 12. 13. 20:47

www.acmicpc.net/problem/20309 20309번: 트리플 소트 $N$은 $3, 4, 5$ 중 하나이다. www.acmicpc.net 생각의 전환 이 문제를 풀기위해서 반드시 사고해야할 점은 "세개를 동시에 뒤집는 것" 이 무엇을 의미하는지 알아야한다 세개를 동시에 뒤집게 되면 세개 중 가운데에 있는 수는 항상 제자리에 있게 되고, 결과적으로 보자면 i 번째 수를 i+2번과 바꾸는것과 같게 되어서 홀수자리는 홀수자리끼리만 / 짝수자리는 짝수자리끼리만 바꿀수 있게 됩니다. 따라서 홀수자리에 짝수가 나온다면 절대 바꿀수 없으므로 NO, 아니면 YES를 출력하게 짜주면 됩니다. #include int arr[345678] = {0}; int main(){ int n; bool ans = tru..

반응형