-
백준 BAEKJOON[2292] : 벌집 - JAVA (Class-2)Dev/코딩테스트 2021. 3. 28. 12:01
문제 링크 : www.acmicpc.net/problem/2292
문제
위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다.
입력
첫째 줄에 N(1 ≤ N ≤ 1,000,000,000)이 주어진다.
출력
입력으로 주어진 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나는지 출력한다.
예제 입·출력
더보기예제 입력
13
예제 출력
3
주말에 집에 다녀오고 야근도 하고.. 알고리즘 문제를 풀지 않은 것에 대한 핑계를 대본다.
정보처리기사 실기 시험이 다가와 실기 시험전까지는 solved 문제를 풀이해보는 포스팅이 늦어질수도 있을것같다.
아니나 다를까 포스팅이 늦어져 버렸다.
이 쉬운 문제를 왜 고민하고있었는지..
벌집은 6의 배수씩 커지는것을 알 수 있었다.
이후 벌집이 한칸 늘어나는 기준 선 [1, 7, 19, 37 ....] 을 기준으로 풀이를 해보았더니 어렵지 않게 풀어 낼 수 있었다.
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int sum = 1; for(int i=0; i<N;i++) { sum += i*6; if(N == 1) { System.out.println(1); break; } if(N <= sum) { System.out.println(i + 1); break; } } } }
난 분명 코드를 제대로 넣었는데 코드블럭이.. 공백처리가 제대로 되지않는것같다..ㅠㅠ
그게 중요한것이 아니라!
파이팅해서 다음 문제를 풀어보도록 하자. 얼른 실버까지 올라가고 싶은 마음뿐이다.
기존에도 알고 있었지만 요즘 내가 부족한점이 너무 많다는것을 느끼고 있다.
얼른 정보처리기사실기 시험에 합격하고 자료구조, 알고리즘, 데이터베이스, 신기술 등 다양한 공부에 전념을 하고싶은 마음뿐이다.!!
'Dev > 코딩테스트' 카테고리의 다른 글
스타트업 코딩 페스티벌 2021 후기 (Startup Coding Festival 2021) (0) 2021.03.22 구름LEVEL : 근묵자흑 - JAVA (0) 2021.03.18 백준 BAEKJOON[2231] : 분해합 - JAVA (Class-2) (0) 2021.03.11 백준 BAEKJOON[10250] : ACM호텔- JAVA (Class-2) (0) 2021.03.07 백준 BAEKJOON[3052] : 나머지 - JAVA (Class-1) (0) 2021.03.06