문제 링크 : https://codeforces.com/contest/1255 A. Changing Volume 문제 요약 임의의 음량 크기에서 자신이 원하는 음량 크기로 맞추는 데 필요한 최소 버튼 클릭 횟수를 구하는 문제이다. 접근 방법 무조건 큰 단위의 버튼을 누르는 게 유리하므로 -5 크기의 버튼을 음량의 차가 5 미만이 될 때까지 누르고, 5 미만이 되면 차에 따라 값을 구하면 될 것 같았다. 시간복잡도 O(1) #include #include using namespace std; int solution(int A, int B) { if(A == B) return 0; if(A < B) swap(A, B); //A가 B보다 크도록 int ret = (A - B) / 5; //무조건 -5를 누르는..
문제 링크 : https://codeforces.com/contest/1243 A. Maximum Square 문제 요약 1 x n 길이의 직사각형들을 붙여서 만들 수 있는 최대 크기의 정사각형(한 변의 길이가 k)을 찾는 문제이다. 접근 방법 어차피 직사각형들을 서로 붙일 것인데 정렬을 시키면 더욱 편하게 풀 수 있을 것이라 생각했고, 직사각형의 개수 n도 최대 1,000 이하라서 O(nlogn)인 정렬을 사용해도 큰 문제가 되지 않을 거라 판단했다. 시간복잡도 시간복잡도는 정렬에서 O(nlogn) 이 소요되고 최대 한 변의 길이(square)를 찾는 부분에서 O(n)이 소요되므로, 총 O(nlogn) 이다. #include #include #include using namespace std; int ..
