백준 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 |
'알고리즘과 코테' 카테고리의 다른 글
[Java | 백준 1193] 분수찾기 (0) | 2021.03.19 |
---|---|
[Java | 백준 1085] 직사각형에서 탈출 (0) | 2021.03.19 |
[Java | 백준 1929] 소수 구하기 (0) | 2021.03.19 |
[Java | 백준 2908] 상수 (0) | 2021.03.18 |
[Java | 백준 2941] 크로아티아 알파벳 (0) | 2021.03.18 |
댓글
최근에 올라온 글
TAG
- filezila
- 정보처리기사 실기
- LifecycleException
- 정보처리기사
- EC2
- IT 5분 잡학사전
- 정보처리기사 필기
- 독서후기
- putty
- JIRA
- gradle build
- gradle
- 노마드코더
- spring
- AWS
- intellij
- 웹페이지만들기
- jdbc
- 개발도서
- java
- 실용주의프로그래머
- 기술블로그
- SQLD
- ubuntu
- 오늘의코딩
- git연동
- 북클럽
- 호스팅영역
- 배포
- 노개북
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 28 |
글 보관함