반응형
문제
풀이
1 -> 1
2 -> 2 ~ 7 (6)
3 -> 8 ~ 19 (12)
4 -> 20 ~ 37 (18)
5 -> 38 ~ 61 (24)
해당 영역의 벌집 개수가 6씩 늘어나는 규칙을 찾을 수 있다
영역의 시작 값과 마지막 값을 계속 더하면서 찾으려는 N값에 범위까지 도달하면 출력하게끔 해서 해결하였다
코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int start = 2;
int end = 7;
int plus = 6;
int count = 2;
int N = sc.nextInt();
if (N == 1) {
System.out.println(1);
return;
}
while (true) {
if (start <= N && end >= N) {
System.out.println(count);
break;
}
count++;
plus += 6;
start = end + 1;
end += plus;
}
}
}
처음에는 6씩 증가하는 규칙을 찾아냈으나 수식이 있나 싶어서 계속 찾다가 시간을 많이 소비하였다
입력하는 N값이 1 <= N <= 1,000,000,000 여서 while로 하면 오래 걸리지 않을까?라는 생각을 했으나 막상 해보니깐 오래 걸리지 않았다
출처
반응형
'알고리즘 > 백준' 카테고리의 다른 글
백준 7568번 덩치 자바 java (0) | 2021.04.09 |
---|---|
백준 2798번 블랙잭 자바 java (0) | 2021.04.08 |
백준 10250번 ACM 호텔 자바 java (0) | 2021.04.07 |
백준 2775번 부녀회장이 될테야 자바 java (0) | 2021.04.07 |
백준 1316번 그룹 단어 체커 자바 java (0) | 2021.04.06 |
댓글