gnidoc 2019. 1. 12. 00:45
반응형

2019/01/10 - [프로그래밍/알고리즘] - 4일차 리뷰


step5는 함수


슬슬 괴로운 문제들이 나온다

재귀함수 문제는 너무너무 귀찮....




2448번

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.
첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (k ≤ 10)

처음에 쉽네하고 풀었다가

가운데 빈 역삼각형 부분도 별로 채워버렸다

잘 생각해보니 재귀 문제...


처음에 k = 1일때의 별을 고정으로 사용하고

k = 2부터 재귀적으로 이전에 만든 별에 x3를 하는 방식으로 풀었다.

주어진 N이 3×2k이라서 k를 만들어내는게 귀찮긴 했다.

(java가 정적타입이다보니 Math의 함수를 쓰면 주로 double로 나와서 타입캐스팅을 자주 해야한다.)


난 string에 append하는 방식으로 삼각형을 그렸는데 배열을 사용한 사람도 있었다.

확실히 알고리즘 대회 준비하는 분들은 거의 다 배열로 푼거 같다(푼 문제 수를 보니 어마어마...)

근데 거의 다 속도는 비슷한거 같고 좀 더 빠른 사람은 println대신 BufferedWriter를 썼다.

단계별로 문제 푼사람이라면 BufferedWriter가 더 빠르다는걸 알고 있을거다

https://www.acmicpc.net/problem/15552

난 굳이 출력 속도까지 고려하면서 공부하는게 아니라서 그냥 println을 썼다.

대충 0.1초 정도 차이나는 듯

어차피 뒤로 갈수록 출력이 많아서 느린 문제는 없으니 난 편한걸로 써야지 ㅎㅎ


내 풀이 : https://github.com/gnidoc327/one-day-one-problem/commit/8b5f7e44e85bfc7690decca12c0bade9a2ebd4ff

반응형