2292번 - 벌집 c언어

접근 방법

  • 처음엔 당황했다.
  • 정신을 차려보니 패턴이 보이기 시작했다.
  • 패턴은 한바퀴를 돌때마다 6*N 의 방식이였다.
  • 패턴대로 코드에 적용시켜보았다.
#include <stdio.h>

long long num, ans= 1, check_number;  // 숫자의 범위가 10000000000이여서 longlong 으로 선언

int main(){
  scanf("%lld", &num); 
  for(int i=1; check_number*6+1<num;i++){ // 한바퀴씩 돌아보는 것을 for문으로 작성
    check_number += i;  // 한바퀴씩 돌때마다 check_number에 i를 더해줌 
    ans++; // 다음 바퀴로 갈때마다 정답에 1씩 더해준다.
  }
  printf("%lld\n", ans);

  return 0;
}

느낀점

수학만 하려하면 머리가 아프다. 짧은 코드로 끝냈지만 상당히 고민을 많이 했던 문제다. 이번 문제에서는 long long 선언에 대해 다시 한번 공부하는 시간이였다. 그리고 색다른 for 문 활용으로 문제를 짧게 푼것에 아주 뿌듯하다. 다음에도 할수 있을까 확신이 서진 않는다. 여러번 활용해서 풀어봐야겠다.

좋은 웹페이지 즐겨찾기