본문 바로가기

전체 글45

[백준 1004] 어린 왕자 https://www.acmicpc.net/problem/1004 해설 이 문제는 1002번 터렛 문제와 마찬가지로 두 원의 위치 관계를 사용해야 한다. 1002번 풀이할 때 열심히 두 원의 위치 관계를 설명했기 때문에 이번 해설에서는 안하려고 한다. (사실 귀찮다.) ( 터렛 문제 해설 참고 : https://far-simple.tistory.com/3) 이 문제를 자기 스스로 풀어보고 싶다면 1002번 터렛 문제를 완전히 익히고 다시 풀어보기를 권장한다. ˙˙˙ 소스코드 #include using namespace std; int main(){ int n, x1, x2, y1, y2; int nn, cnt, cx, cy, cr; int da, db, sqrcr; cin >> n; for(int i=0.. 2020. 3. 19.
[백준 1003] 피보나치 함수 https://acmicpc.net/problem/1003 해설 문제는 위와 같다. 일단, 시간 제한이 0.25초 라는 것을 보고 우리는 DP(다이나믹 프로그래밍)를 생각해봐야한다. 0과 1 리턴의 규칙성을 찾아보면 다음과 같다. fibo(n) fibo 값 0의 개수 1의 개수 fibo(0) 0 1 0 fibo(1) 1 0 1 fibo(2) 1 1 1 ˙˙˙ fibo(i) fibo(i-1) + fibo(i-2) fibo(i-1) fibo(i) 처음 시작 항 두 개만 초기화 시켜주면 된다. dp[0] = 0; dp[1] = 1; 소스코드 #include using namespace std; int dp[41]; int main(){ int n; cin >> n; for(int l=0; l> a; dp[0].. 2020. 3. 19.
[백준 1002] 터렛 https://www.acmicpc.net/problem/1002 해설 먼저, 문제가 깨끗하게 읽히진 않는다. 문제에서 좌표가 나오고 거리가 주어지니 우리는 고등학교 과정의 수학( 두 원의 위치 관계 )을 떠올려야 한다. 3가지를 생각해보자. i) 두 원이 두 점에서 만나는 경우 두 반지름의 합이 두 점 사이의 거리의 합보다 크고, 두 반지름의 차가 두점 사이의 거리의 합보다 작아야 한다. (한 원이 다른 원 안에 있는 경우) ii) 두 원이 한 점에서 만나는 경우 두 반지름의 합이 두 점 사이의 거리의 합과 같거나 두 반지름의 차가 두 점 사이의 거리의 합과 같다. ( i)와 마찬가지로 한 원이 다른 원 안에 있을 수 있음.) iii) 두 원이 만나지 않는 경우 i), ii) 케이스의 나머지 케이스들이.. 2020. 3. 19.
[백준 1001] A-B https://www.acmicpc.net/problem/1001 해설 저번 문제인 A+B와 매우 유사하다. (A+B부분을 A-B로만 바꿔주면 해결된다.) #include using namespace std; int main(){ int a,b; cin >> a >> b; cout 2020. 3. 19.