[백준] 2292번. 벌집 (Python)

윤라이트·2024년 3월 14일

백준 코딩테스트

목록 보기
25/25


[브론즈 2] 2292번. 벌집



문제를 어떤 식으로 접근해야 할지
고민하느라 시간이 꽤 걸린 듯하다.

벌집의 크기
1개였다가 7개로 -> 19 -> 37 -> 61 ···
위 사진을 보면 6의 배수만큼 커지는 걸 볼 수 있다.

다른 경우도 동일하다.
1 -> 3 -> 11 -> 25 -> 45 ···
2에서 6만큼 커지면 8
8에서 6만큼 커지면 14
·
·
·

난 리스트로 벌집의 크기를 만들어주는
방식을 선택했다.





문제 풀이

  1. N 입력 받기
  2. 벌집 리스트 만들기 (range)
  3. 리스트 인덱스를 위한 변수 생성 (i)
  4. 6씩 증가하는 변수 생성 (j)
  5. 현재 벌집 크기 리스트가 입력 받은 N의 값보다 작을 때까지만 while문으로 반복
  6. 벌집의 테두리를 한 겹 두르기.
    📍 이전의 벌집 크기에서 6의 배수만큼 더한 값을 append
  7. 인덱스 변수 1 증가, 6의 배수 변수 6 증가
  8. 출력




[정답 코드] 2292번. 벌집 (Python)

N = int(input())

range = [1, ]   # 벌집 크기 리스트트
i = 0
j = 6
while range[i] < N :    # N보다 작을 때까지 반복
    range.append(range[i]+j)  # 벌집 테두리 추가
    i += 1
    j += 6
print(len(range))


다른 사람의 코드를 보았는데 굳이 리스트를 사용하지 않아도 될 듯하다.



다른 사람의 코드 참고

n = int(input())

nums_pileup = 1  # 벌집의 개수, 1개부터 시작
cnt = 1
while n > nums_pileup :
    nums_pileup += 6 * cnt  # 벌집이 6의 배수로 증가
    cnt += 1  # 반복문을 반복하는 횟수
print(cnt)

영지공지님의 코드인데 이 방법도 좋은 듯하다.

그래도 나처럼 리스트로 작성한 사람은 못 봄.

^^

profile
끝까지 가보자9~!!!🔥✨💡

0개의 댓글