BOJ(13)
-
[BOJ] 브루트 포스
오늘부터는 (시시한 거 그만하고) 슬슬 알고리즘을 해보도록 하겠습니다. 오늘의 주제는 브루트 포스입니다. 브루트 포스는 그냥 무식하게 하나하나 다 해보는 방법입니다. 한마디로 난 그런 거 잘 모르겠고 일단 부딪혀. [BOJ 2798] 3개의 카드를 고르는 경우를 모두 해보는 방법입니다. 3개의 카드를 고르기 때문에 3중 for문입니다. #include #include using namespace std; int nearestsum(const vector & cards, int limit){ int maxsum = 0; for(int i=0;i
2020.07.30 -
[BOJ] 재귀
바로 시작해보겠습니다. [BOJ 10872] switch-case문으로 구현해주었습니다. #include unsigned int fact(unsigned int N){ switch(N){ case 0: case 1: return 1; default: return fact(N-1) * N; } } int main(){ int N; scanf("%d",&N); printf("%d", fact(N)); } [BOJ 10870] switch-case문으로 구현해주었습니다. 2 #include unsigned fibb(unsigned N){ switch(N){ case 0: return 0; case 1: case 2: return 1; default: return fibb(N-1) + fibb(N-2); } }..
2020.07.29 -
[BOJ] 수학 2(2)
토요일 저녁이라 역시 뭐를 하기가 귀찮군요 허허. [BOJ 1085] 직사각형의 벽까지의 거리의 최솟값을 구해주면 됩니다. min을 3번 쓰면 됩니다. min은 algorithm 헤더에 구현되어 있습니다. #include #include using namespace std; int distoutside(int x, int y, int w, int h){ return min(min(x, w-x), min(y, h-y)); } int main(){ int x, y, w, h; scanf("%d%d%d%d",&x,&y,&w,&h); printf("%d",distoutside(x,y,w,h)); } [BOJ 3009] 사각형에서 가로나 세로로 이웃한 점들은 그 줄의 좌표를 공유합니다. 좌표가 3개 주어지므로 x..
2020.07.25 -
[BOJ] 수학 2(1)
오늘은 수학 2단계의 전반부를 풀어보겠습니다. 소수에 관한 문제들입니다. 이번 시간에 소수에 관한 문제를 풀 때는 알고리즘을 2개만 알면 됩니다. 먼저 하나의 소수가 주어졌을 때 해당 수가 소수인지 아닌지 판단하는 경우입니다. bool isprime(int n){ if(n==1) return false; for(int k=2;k*k
2020.07.25 -
[BOJ] 수학 1(2)
[BOJ 2869] 아... 설명하기 굉장히 어렵군요... 일단 하루가 지날 때마다 총 올라간 거리를 등반과 미끄러짐을 고려하여 구해줍니다. 마지막 날에 정상에 도착하면 끝이므로 미끄러지는 거리는 공짜로 먹고 들어간다고 볼 수 있습니다. 그래서 고려사항에서 빼줍니다. 이제 이 거리 이상 올라갈 때까지 걸리는 시간을 계산해주면 됩니다. #include int climbdays(int climb, int fall, int distance){ int climbperday = climb - fall; int d = distance - fall; return (d / climbperday) + (d % climbperday != 0 ? 1 : 0); } int main(){ int A, B, V; scanf("%..
2020.07.24 -
[BOJ] 수학 1(1)
슬슬 조금이나마 어려워지고 있습니다. [BOJ 1712] 몸풀기 잘했습니다. 고정비용을 판매당 순이익으로 나눠주면 됩니다. 무조건 총순이익이 (+)가 돼야 하기 때문에 +1을 해줍니다. #include int breakevenpoint(int fixcost, int varcost, int pergain){ if(varcost >= pergain) return -1; else{ int perincome = pergain - varcost; return (fixcost / perincome) + 1; } } int main(){ int A, B, C; scanf("%d%d%d",&A,&B,&C); printf("%d",breakevenpoint(A,B,C)); } [BOJ 2839] 일단 최대한 5킬로짜리로..
2020.07.24