전공공부
[BOJ 2292] 벌집 본문
위 선을 잘 보면 1 -> 6 -> 12 -> 18 즉, 6의 배수로 늘어나는 규칙을 발견 할 수 있다.
그렇다면 27으로 가기 위해서는 1 + 6*1 + 6*2 + 6*3 = 37 이내이고 1 + 6*1 + 6*2 = 19 이상이다.
그러면 해당 사이인 위치로 가기 위해서는 총 4번을 움직여야 갈 수 있다는 것을 알 수 있다.
13의 경우 : 1 + 6*1 + 6*2 = 19 이내이고 1 + 6*1 = 7 이상이다. 총 3번을 움직여야 갈 수 있다.
이를 구현하면 된다.
import java.util.Scanner;
public class BOJ_2292_벌집 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
long N = sc.nextLong();
long max = 1;
int ans = 1;
while(max < N){
max += 6*ans;
ans++;
}
System.out.println(ans);
}
}
2292번: 벌집
위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌
www.acmicpc.net
'Study > Problem Solving' 카테고리의 다른 글
[BOJ 9655] 돌 게임 (0) | 2023.07.26 |
---|---|
[BOJ 11723] 집합 (0) | 2023.07.26 |
[BOJ 5073] 삼각형과 세 변 (0) | 2023.07.23 |
[BOJ 23971] ZOAC4 (0) | 2023.07.22 |
[PROGRAMMERS] 숫자 변환하기 (0) | 2023.05.01 |