https://www.acmicpc.net/problem/2292
2292번: 벌집
위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌
www.acmicpc.net
풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine())-1;
int k =1;
while(n>0){
n = n-(6*k);
k++;
}
System.out.println(k);
}
}
설명
시작점부터 n사이의 숫자중 k거리를 갖는 수들의 범위는 "n-{6*(k-1)}+1부터 n이 된다.
때문에 입력받은 n에서 시작점 1을 뺸 n-1에서 6*1, 6*2,... 6*k을 차례대로 빼준 값이 음수가 될때의 k값을 반환해주면 이 k값이 된다.
728x90
'코딩 테스트 > 백준' 카테고리의 다른 글
[백준15829/JAVA] Hashing (0) | 2021.12.29 |
---|---|
[백준2798/JAVA] 블랙잭 (0) | 2021.12.29 |
[백준22775/JAVA] 부녀회장이 될테야 (0) | 2021.12.23 |
[백준10250/JAVA] ACM 호텔 (0) | 2021.12.22 |
[백준1085/JAVA] 직사각형에서 탈출 (0) | 2021.10.25 |