본문 바로가기

PS15

[BOJ 1411] 비슷한 단어 문제 링크 https://www.acmicpc.net/problem/1411 1411번: 비슷한 단어 첫째 줄에 단어의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에 한 줄에 하나씩 단어가 주어진다. 단어의 길이는 최대 50이고, N은 100보다 작거나 같은 자연수이다. 각각의 단어는 모두 다르다. www.acmicpc.net 아이디어 문자열 단순 구현 1. 같은 문자가 다른 문자로 바뀌는 경우 (aa -> bc) 2. 다른 문자가 같은 문자로 바뀌는 경우 (bc -> aa) 위의 두 가지 경우를 제외하고는 모두 바꿀 수 있다. 소스코드 #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(false);.. 2020. 5. 7.
[BOJ 1564] 팩토리얼5 문제 링크 https://www.acmicpc.net/problem/1564 1564번: 팩토리얼5 첫째 줄에 정수 N이 주어진다. N은 1,000,000보다 작거나 같다. 또, 9보다 크거나 같다. www.acmicpc.net 필요한 지식 모듈러 연산의 성질 $$(A*B) modC=((A mod C)*(B mod C)) mod C$$ 곱셈에 대한 증명은 아래와 같으며 모든 사칙연산에 대해 성립한다. 주의할 점 문제에서 0이 아닌 뒤 다섯자리를 요구하기 때문에 MOD를 1e5로 잡을지도 모른다. 하지만 xxxx50272 * 9500을 세로식으로 계산하면, xxxx7854000까지만 알 수 있다. 즉 뒤의 이어지는 0을 모두 지울 경우 7, 8, 5, 4 네 개의 수만을 알 수 있는 것이다. 그렇기 때문에.. 2020. 5. 4.
[BOJ 1166] 선물 문제 링크 https://www.acmicpc.net/problem/1166 1166번: 선물 첫째 줄에 N L W H가 주어진다. 모든 값은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 아이디어 이분 탐색을 통해, L*W*H의 박스안에 A*A*A의 박스가 N개 이상 들어가도록하는 A의 최대값을 찾는다. 주의할 점 L, W, H는 최대 1e9이기 때문에 num의 최대값은 1e27라고 생각할 수 있다. 이 때, 1e27은 8byte의 long long int로도 표현할 수 없는 큰 수이다. 하지만 N=1e9일 때, mid의 최소값은 1e3이며 따라서 num의 최대값은 1e18로 long long int로 커버 가능하다. 이분 탐색의 반복문을 while (hi - lo .. 2020. 4. 30.