본문 바로가기
SMALL

BaekJoon3

15552번 : 빠른 A+B 이 문제는 간단한 A+B이지만, 시간제한을 두어서 빠르게 처리하도록 문제를 의도하였다. 그래서 위 사진 처럼 힌트를 주었다. 난 위 언어 중에서, java를 사용해서 이 문제를 활용 하였다. 우선 BufferedReader와 BufferedWriter에 대해 알아 보았다. BufferReader BufferedReader는 Enter만 경계로 인식하고 받은 데이터가 String으로 고정되기때문에 입력받은 데이터를 가공하는 작업이 필요할 경우가 많다. Scanner에 비해 다소 사용하기 불편할 수 있다. 하지만 많은 양의 데이터를 입력받을경우 BufferedReader를 통해 입력받는 것이 효율면에서 훨씬 낫다. 입력시 Buffer 메모리를 줌으로써 작업속도 차이가 많이 난다고 한다. BufferWrite.. 2020. 3. 12.
1003번 : 피보나치 함수 이번에는 c++을 이용하여 피보나치 함수를 풀어봤다. 이 문제는 시간제한이 걸려있어서 처음에 너무 당황하였다. 왜냐하면 fibonacci 재귀 함수를 주고서 분석하라고 해서 재귀 함수를 써야 한다는 생각을 못 버렸다. 아래는 처음 풀이다. 또한 각 0과 1의 출력횟수는 fibonacci(N-1) , fibonacci(N)이다. 위의 코드를 이용해서 풀었더니, 결과는 시간 초과.... , 그래서 어떻게 풀어야하나 고민을 하게 되었다. 그때, 알고리즘의 한 종류인 Dynamic Programming을 알게 되었다. 일명 dp. 위키피디아의 DP 정의 일반적으로 주어진 문제를 풀기 위해서, 문제를 여러 개의 하위 문제(subproblem)로 나누어 푼 다음, 그것을 결합하여 최종적인 목적에 도달하는 것이다. .. 2020. 2. 1.
1002번 : 터렛 C++의 입출력을 공부하고 바로 문제를 풀어 보았다. 이 문제는 정답 비율 19.36% 로서 어려웠다... 솔직히 코딩 문제라기보단 수학 문제다. A(x1, y1) B(x2, y2) C라는 점을 두고 , A와 C 사이 거리 r1 , B와 C 사이 거리 r2, A와 B 사이 거리 r3로 두었다. 이 문제에서 크게 두가지 경우로 나누었다. A, B가 동일한 점인 경우 A, B가 동일하지 않은 경우 위와 같이 크게 두 경우로 나누고, 세부적으로 case를 나누었다. A, B동일 점인 경우와 A, B가 다른 점인 경우 모두 r기준으로 구분하였다. 이때, 다른 경우에 maxR을 구해서, maxR을 기준으로 삼각형의 형성 조건을 생각하면서 세 가지 경우로 나누었다. ★삼각형의 형성 조건- 가장 긴 변의 길이 < 나.. 2020. 1. 31.
반응형
LIST