https://www.acmicpc.net/problem/2292
2292번: 벌집
위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌
www.acmicpc.net
이번 문제는 2292번 벌집 문제로 간단한 계산식이 필요합니다.
입력 사항 -
첫째 줄에 N(1 ≤ N ≤ 1,000,000,000)이 주어진다.
출력 사항 -
입력으로 주어진 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나는지 출력한다.
주의 사항 -
입력 값이 1인 경우도 체크해야한다.
풀이 방식 -
문제에서 설명하는 방에 따른 숫자 증가량을 보면 아래와 같다.
1
7 +6
19 +12
37 +18
61 +24 ...
6의 다음 배수만큼 더하며 방의 수가 증가하기에
1 + (6*1) + (6*2) + (6*3) + (6*4)... 이러한 형태를 이룬다.
따라서 입력값이 1일땐 1을 출력하며, 그외에 경우엔 방을 하나 넘어갔을때의 최소값인 2부터 시작하여
현재 최소값 + (방을 넘는 횟수 * 6)을 계산해주면된다.
로직 -
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int answer = 2;
int cnt = 1;
if( n ==1){
System.out.println(cnt);
}else {
while (answer <= n){
answer = answer+(cnt*6);
cnt++;
}
System.out.println(cnt);
}
}
}
'CodingTest' 카테고리의 다른 글
백준_9655번_돌 게임_자바 (0) | 2024.02.29 |
---|---|
백준_1157번_단어 공부_자바 (1) | 2024.02.27 |
백준_5073번_삼각형과 세 변_자바 (3) | 2024.02.26 |
백준_23971번_ZOAC 4_자바 (3) | 2024.02.26 |
백준_1436번_영화감독 숌_자바 (0) | 2024.02.09 |