Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
Tags
- 타입스크립트
- 프로그래머스
- 협업
- codeup
- 리덕스장바구니
- 백준
- memory
- js to ts
- 일상
- react-redux
- Operating System
- react
- 기초100제
- 자료구조
- 분할메모리할당
- Redux
- Spring
- 정렬
- OS
- web
- 공부
- 코드업
- Java
- CPU 스케줄링
- 토이프로젝트
- error
- 파이썬
- C++
- 알고리즘
- 스프링
Archives
- Today
- Total
감자튀김 공장🍟
[백준/2292] 벌집 (with 파이썬) 본문
반응형
✔ 문제
✔ 풀이
n = int(input())
honeycomb = 1
cnt = 1
while n > honeycomb:
honeycomb += 6 * cnt
cnt += 1
print(cnt)
✔ 설명
먼저 honeycomb 1에서 시작하게 되는데 1번 벌집에서부터의 거리를 따지면
거리 1: 1번 벌집
거리 2: 2~7번 벌집
거리 3: 8~19번 벌집
거리 4: 20~37번 벌집
거리 5: 38~61번 벌집
으로 나뉘어진다.
이를 수식화 하면 (1 + 6 * n)이 되는데 ((거리2 벌집의 개수는 6개, 거리 3은 12개, 거리 4는 18개로 6의 배수로 증가함을 알 수 있기 때문이다.)) 벌집이 n보다 커지기 전까지 계속 while 문을 돌면서 벌집의 숫자를 점차 키워가며 거리를 +1씩 하면 된다.
결국 honeycomb는 1 > 7 > 19 > 37 로 커지게 된다. (이는 각 거리에서 갈 수 있는 최대 벌집의 숫자이다.)
n이 1보다 크면 6*1을 더하고 거리(cnt)에 +1을 한다.
n이 7보다 크면 6*2을 더하고 거리(cnt)에 +1을 한다.
이를 반복하여 honeycomb이 n보다 커지게 되면 반복문을 종료하고 cnt 값을 출력한다.
✔ 후기
수학적 공식은 파악했는데 또 구현하는데에서 막혔었다.
언제쯤 안막히냐....ㅎ 다시 풀어봐야겠다.
✔ 참고 링크
반응형
'Algorithm > BOJ' 카테고리의 다른 글
[백준/2869] 달팽이는 올라가고 싶다 (with 파이썬) (0) | 2022.10.23 |
---|---|
[백준/1193] 분수찾기 (with 파이썬) (0) | 2022.10.21 |
[백준/1712] 손익분기점 (with 파이썬) (0) | 2022.10.19 |
[백준/1316] 그룹 단어 체커 (with 파이썬) (0) | 2022.10.18 |
[백준/2941] 크로아티아 알파벳 (with 파이썬) (0) | 2022.10.17 |
Comments