본문 바로가기

분류 전체보기165

[백준/Python] 2292번 벌집 문제 ■ 2292번 벌집 문제 ■ 코드 풀이 문제를 보면 숫자 2부터 7까지는 방이 2개입니다. 8부터 19까지는 방이 3개, 20부터 37까지는 방이 4개, 38부터 61까지는 방이 5개입니다. 다시 말해, 방의 개수를 정하는 범위의 끝은 +6→+12→+18→+24→ .. 씩 늘어난다고 볼 수 있습니다. 정확한 수열 용어는 기억이 나지 않지만, 목적은 코드를 푸는 것이므로 아래와 같이 구현할 수 있습니다. N이 1이라면 바로 room의 개수를 출력하면 됩니다. N이 그 이상이라면 범위의 끝자리 숫자와 비교해야 합니다. 끝자리 숫자보다 N이 작거나 같다면, 그 구간이 바로 방의 개수가 될 테니까요. 이런 코드는 직접 손으로 따라 하셔야 이해가 빠릅니다. 7, 15, 20 이렇게 3가지 숫자에 대해 한 번 연습.. 2023. 4. 9.
[백준/Python] 2903번 중앙 이동 알고리즘 문제 ■ 2903번 중앙 이동 알고리즘 문제 ■ 코드 풀이 코드 자체는 심플한데, 아이디어를 떠올리는게 어려웠던 것 같습니다. 문제를 단순히 하면, 정사각형이므로 한 변에 점이 몇 개씩 늘어나는지만 코드로 구현하면 됩니다. 저는 파이썬 string type의 특성을 활용하여 이를 구현했습니다. 초기 점의 상태를 dot이라고 선언하고 값으로 별표 2개, '**' 를 넣어 줍니다. 여기서 dot은 누적되어 관리되어야 합니다. 문제에서 보면 N = 2는 N = 1인 상태에서 점을 추가한 것이니까요. 누적 관리를 위한 변수를 따로 k라고 선언하겠습니다. 마지막으로 점을 추가하는 규칙은 간단합니다. 점과 점 사이에 하나의 점을 찍는 것이므로 len(dot) -1 만큼 찍어주면 됩니다. 그래서 결과적으로 아래와 같이 간.. 2023. 4. 8.
[백준/Python] 2720번 세탁소 사장 동혁 문제 ■ 2720번 세탁소 사장 동혁 문제 ■ 코드 풀이 거스름돈 수를 가장 적게 받는 방법은 단순합니다. 큰 돈부터 먼저 거슬러주면 됩니다. 이를 위해 if문을 반복적으로 활용해줍니다. def change_money(c, value_of_coin): return c//value_of_coin, c%value_of_coin N = int(input()) test_cases = [] for i in range(N): C = int(input()) test_cases.append(C) for test_case in test_cases: change_list = [0, 0, 0, 0] if test_case >= 25: change_list[0], test_case = change_money(test_case, 2.. 2023. 4. 7.