백준 - 단계별로 풀어보기/일반 수학 1

1. 문제 상세 https://www.acmicpc.net/problem/2869 2. 문제 접근 반복문을 통해 결과를 구한다면 간단하지만, 반복문을 사용할 시 문제해결 제한시간이 초과된다.while문으로 문제를 풀어봤는데 바로 시간초과.. 따라서, 반복문이 아닌 이동 높이, 떨어지는 높이, 목표 높이와 결과 사이의 규칙을 찾아 해결하자. 달팽이는 A 만큼 올라가고 B 만큼 미끄러진다. 즉 하루가 지난 후 달팽이는 A - B 만큼의 거리를 이동한다. 달팽이가 목표에 도달하면 미끄러지지 않기 때문에 총 높이는 V - B 가 된다. 즉 (V - B) / (A - B) 가 총 이동 날짜가 된다. 이 때 값이 나누어 떨어지지 않는다면 하루를 더 가야한다는 뜻이므로 이동 날짜에 1을 더해주자. 3. 문제 풀이 #..
1. 문제 상세 https://www.acmicpc.net/problem/1193 2. 문제 접근 대각선을 따라 지그재그 순서로 분수를 확인하여 해당 순서의 분수를 출력하는 것이 문제이다. 이를 참고해서, 대각선을 보고 규칙을 찾아보자. 대각선의 분수들을 보면 i 번째 대각선인 경우 그 대각선에는 i 개의 분수가 있다. 이에 따라 먼저 내가 입력받은 순서가 몇 번째 대각선에 있는지를 확인하자. 이를 확인하기 위해 입력받은 순서 n 에서 i 를 1씩 증가시키며 빼준다. n 이 i 보다 작거나 같아졌다면 i 번째 대각선에 내가 입력받은 순서가 있다는 것이다. 그리고 지그재그 순서이므로 대각선에서 분수들의 순서에도 규칙이 있다. 짝수 i 번 대각선이라고 할 때, 그 대각선 안의 분수는 1/i, 2/i - 1,..
1. 문제 상세 https://www.acmicpc.net/problem/2292 2. 문제 접근 중간부터 원하는 주소의 방까지 몇 개의 방을 거쳐야 하는지 구하자. 이번에는 규칙을 찾고 원하는 결과를 얻었을 때(주소에 도착)반복 횟수를 출력하면 된다. 첫 번째 방을 모두 둘러 쌀 경우 방이 6개 증가한다. 그 다음 다시 방을 모두 둘러 쌀 경우 방이 12개 증가한다. 이렇게 바깥쪽으로 방들이 한 줄 늘어 날 때 마다 방이 6의 배수씩 더해진다. 즉 1 + 6의 배수 작업을 몇 번 반복했을 때 주소값보다 커지는지를 확인하여 반복 횟수를 출력하면 된다. 3. 문제 풀이 #include using namespace std; int main() { int n, i, address = 1; cin >> n; f..
1. 문제 상세 https://www.acmicpc.net/problem/2903 2. 문제 접근 과정에 따른 점의 개수의 규칙을 보면 4, 9, 25, 81, ... 와 같이 2, 3, 5, 9, ... 의 제곱으로 이루어진다. 2, 3, 5, 9 ... 은 각 과정에서 한 변에 위치한 점의 개수들이 된다. 결과적으로 각 과정에서 모든 점의 개수는 한 변의 점 개수의 제곱이 된다. 이제 초기상태부터 과정을 거칠 때 마다 한 변의 점의 개수가 몇 개인지만 알아내면 된다. 처음엔 2개, 과정을 1번 거칠 시 3, 2번은 5, 3번은 9, ... 여기서 증가하는 수를 보면 이전 과정의 한 변의 점 갯수 + (이전 과정의 한 변의 점 갯수 - 1) 이다. 즉 2, 2+(2-1) = 3, 3+3(-1) = 5,..
1. 문제 상세 https://www.acmicpc.net/problem/2720 2. 문제 접근 입력받은 5달러 이하의 금액을 해당 금액에 맞는 개수의 동전으로 바꾸자. (1달러 = 100센트) 거스름돈을 25로 나눈 몫을 출력한다. 그리고 그 몫에 25를 곱한 값을 거스름돈에서 뺀다. 거스름돈을 10으로 나눈 몫을 출력한다. 그리고 그 몫에 10을 곱한 값을 거스름돈에서 뺀다. 거스름돈을 5로 나눈 몫을 출력한다. 그리고 그 몫에 5를 곱한 값을 거스름돈에서 뺀다. 거스름돈을 1로 나눈 몫을 출력한다. 그리고 그 몫에 1을 곱한 값을 거스름돈에서 뺀다. 3. 문제 풀이 #include using namespace std; int main() { int t, c, coin[4] = {25, 10, 5,..
1. 문제 상세 https://www.acmicpc.net/problem/11005 2. 문제 접근 문제 2745번 : 진법 변환 의 반대이다. 이번에는 10진법 숫자와 진법을 입력받아 해당 진법으로 바꿔 출력한다. 예시로 60466175 를 36진법으로 변환하는 방법을 알아보자. 36진법은 한 자리에 0~35까지의 숫자를 사용한다. 9가 넘어가는 숫자는 10 : A, 11 : B, 12 : C 와 같이 알파벳 대문자로 나타낸다. 변환시, 60466175를 36으로 나눈다. 나눈 나머지를 변환 할 36진법 수 맨 뒷자리로 한다. 나머지 값이 35인데, 35는 Z 로 표시하여 마지막 자리는 Z 가 된다. 이렇게 나눈 몫을 다시 36으로 나눈 나머지를 그 앞 자리로 하고, 다시 나누고 자리수를 표시하기를 몫..
Dry_p
'백준 - 단계별로 풀어보기/일반 수학 1' 카테고리의 글 목록