분류 전체보기(18)
-
[BOJ 19533] [UCPC 2020 예선] 길이 문자열
오늘은 (제 기준) 초고난도 문제를 들고 왔습니다. 너무 어려웠어요. 물론 시간 안에 못 풀었습니다. 헤헤 원래는 이 포스팅을 쓰지 않았겠지만 제가 삽질한 시간이 너무도 아깝기 때문에 쓰는 것입니다. 시작해보겠습니다. https://www.acmicpc.net/problem/19533 19533번: 길이 문자열 각 테스트 케이스마다 길이 $a\times 10^b$인 길이 문자열을 출력한다. 이때 $a\times 10^b \geq 21$이면 문자열의 맨 앞의 $17$글자만 출력 예시와 같은 형식으로 출력한다. www.acmicpc.net 기본적으로 길이 문자열은 십진법 숫자들이 -로 구분되어있는 문자열이고 십진법 숫자의 앞에 0을 넣는 것은 불가능합니다. 이 문자열의 특징은 각 숫자에서 - 전까지 끊었을 ..
2020.07.28 -
[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 -
[BOJ] 문자열
이제 슬슬 조금씩 삽질을 할 조짐이 보이는 것 같습니다. [BOJ 11654] getchar 함수를 통해 한 글자를 받아 해당 글자의 값을 십진수로 출력해주면 되겠습니다. #include int main(){ printf("%d",getchar()); } [BOJ 11720] getchar 함수를 통해 한 글자씩 받고 해당 글자의 값을 아스키코드로부터 추출해서 더해주면 되겠습니다. 개행 문자를 지우기 위해 scanf에 \n을 추가해주었습니다. #include int main(){ int N; scanf("%d\n",&N); int sum = 0; for(int k=0;k S; vector loc = alpha_loc(S); for(int k=0;kend(), sentence.begin() + k)){ k..
2020.07.23