https://www.acmicpc.net/problem/6064 6064번: 카잉 달력 문제 최근에 ICPC 탐사대는 남아메리카의 잉카 제국이 놀라운 문명을 지닌 카잉 제국을 토대로 하여 세워졌다는 사실을 발견했다. 카잉 제국의 백성들은 특이한 달력을 사용한 것으로 알려져 있다. 그들은 M과 N보다 작거나 같은 두 개의 자연수 x, y를 가지고 각 년도를 와 같은 형식으로 표현하였다. 그들은 이 세상의 시초에 해당하는 첫 번째 해를 로 표현하고, 두 번째 해를 로 표현하였다. 의 다음 해를 표현한 것을 이라고 하자. 만일 www.acmicpc.net 문제 접근 방식 x나 y를 1씩 증가시키는 방식으로 진행 시 시간초과를 초래할 수 있다. x를 고정 시키고 출력 해를 M만큼 증가시키는 방식으로 해를 구한..
https://www.acmicpc.net/problem/1890 1890번: 점프 문제 N×N 게임판에 수가 적혀져 있다. 이 게임의 목표는 가장 왼쪽 위 칸에서 가장 오른쪽 아래 칸으로 규칙에 맞게 점프를 해서 가는 것이다. 각 칸에 적혀있는 수는 현재 칸에서 갈 수 있는 거리를 의미한다. 반드시 오른쪽이나 아래쪽으로만 이동해야 한다. 0은 더 이상 진행을 막는 종착점이며, 항상 현재 칸에 적혀있는 수만큼 오른쪽이나 아래로 가야 한다. 한 번 점프를 할 때, 방향을 바꾸면 안 된다. 즉, 한 칸에서 오른쪽으로 점프를 하거나, 아래로 www.acmicpc.net 문제 접근 방식 최초 지점으로 부터 오른쪽 혹은 아래로 이동을 할 수 있다. 도착 지점의 입장에서 생각해보면 왼쪽에서 도착 지점으로 오거나 위..
스트래티지 패턴(Strategy Pattern)은 알고리즘을 정의하고 각각을 캡슐화하여 교환해서 사용할 수 있도록 만드는 패턴입니다. 이 패턴을 활용하면, 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경할 수 있습니다. 이 패턴을 익히면서 알 수 있는 객체 지향적 원칙이 있습니다. 바뀌는 부분은 캡슐화 한다. 상속보다는 구성을 활용한다. 구현이 아닌 인터페이스에 맞춰서 프로그래밍한다. 기본적으로는 Animal 클래스로부터 상속을 받는 형식으로 구성되어있습니다. 달리고, 날고, 뛰는 등의 행위가 객체마다 다르다고 가정하여 분리를 하였습니다. 아래에 코드가 있습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ..