백준 풀이

백준 2292 풀이

ag2개발자 2022. 2. 2. 12:24
def sol(a):
    return 0

빈 함수를 만들고

import unittest

class TestNotebook(unittest.TestCase):
    
    def test_sol(self):
        self.assertEqual(sol(13), 3)
        

unittest.main(argv=[''], verbosity=2, exit=False)

 

테스트 먼저 진행한다. 당연히 fail한다.

 

def sol(a):
    x=1
    cnt=1
    while a>x:
        x+=6*cnt
        cnt+=1
    return cnt

테스트 케이스를 이용해서 문제를 풀어 보았다. 벌집의 개수는 한 칸이 멀어질수록 6n을 1~n까지 더한 개수이다. 즉 처음 벌집까지 포함해야함으로 cnt를 1로 두고 1씩증가해가면서 6*cnt를 x라는 변수에 더해간다. x가 a보다 커질때 while문을 빠져나가며, 그때의 cnt가 답이된다.

 

unittest.main(argv=[''], verbosity=2, exit=False)

이렇게 테스트 케이스를 돌리면 성공

'백준 풀이' 카테고리의 다른 글

백준 10250번 python  (0) 2022.08.18
백준 10926 파이썬  (0) 2022.08.18
백준 2292번 파이썬  (0) 2022.08.18
백준 1920 풀이(이분 탐색(binary search))  (0) 2022.02.01
백준 2839 풀이  (0) 2022.02.01