[Java | 백준 2292] 벌집
· 테크· Java
Java
백준 2292번 www.acmicpc.net/problem/2292
풀이
몇 개의 방을 지나가냐는 출력하는 문제지만, 쉽게 말해 1에서 몇 번의 테두리를 지나서 도달할 수 있는가를 뜻한다.
즉, 우리가 여기서 알아야 할 것은 원하는 방이 몇 번째 테두리 인지 알면 된다.
주의점! 입력값이 1 이면 1번 지나는 것으로 한다.
그림에서
2 / 8 / 20 / 38 / 62 ...
숫자를 보면 한 줄이면서 새로 테두리를 만드는 시작점이 된다. 이 시작점이 아래 코드의 limit 가 된다.
처음 limit 의 시작은 2 인데 다음 시작점은 6이 증가하고 그 다음은 12, 18 이런식으로 증가한다. 등차수열을 이루고 있는 그 차가 6*n 값이라는 것을 알 수 있다.
즉, 우리가 원하는 방이 몇 번째 테두리인지 알기 위해서는 시작점(회색 숫자 참조) 어디와 어디 사이인지를 알면된다. limit 를 증가시기면서 a < limit 인 부분까지만 limit 를 증가시켜준다.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
sc.nextLine();
int i = 0;
int limit = 2;
if(a==1) i=1;
else {
while(a>=limit) {
limit += 6*i;
i++;
}
}
System.out.println(i);
sc.close();
}
}
|
cs |
Comments
No comments yet. Be the first!
319 posts in 테크
- 368Supabase 프로젝트 복사하기 (Restore to a New Project)NEW
- 341Migrating from Permanent Access Tokens to Token Exchange — Why Order Matters
- 326Startup & Product Glossary: Terms Every Solo Founder Should Know
- 325Context Management — How I Do It Now
- 324Claude Code Routines vs Cowork Schedule — What's the Difference?
1–5 / 319