본문 바로가기
TIL

99 클럽 4일째 TIL

by double-step 2024. 3. 28.
728x90
반응형
SMALL

세번째 TIL이자 4일째 99클럽이다.

오늘의 파이썬 비기너 문제이다.

 

문제 설명

이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.
별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.

 

제한 조건

  • n m 각각 1000 이하인 자연수입니다.

이건 매우 간단한 문제이다. 세로 길이만큼 반복하면서 한번에 가로의 길이만큼 별 문자를 출력하면 된다.

 

a, b = map(int, input().strip().split(' '))
for i in range(b):
    answer = ''
    for j in range(a):
        answer += '*'
    print(answer)

 

다음은 파이썬 미들러의 문제다.

 

문제 설명

효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는
(1칸, 1칸, 1칸, 1칸)
(1칸, 2칸, 1칸)
(1칸, 1칸, 2칸)
(2칸, 1칸, 1칸)
(2칸, 2칸)
의 5가지 방법으로 맨 끝 칸에 도달할 수 있습니다. 멀리뛰기에 사용될 칸의 수 n이 주어질 때, 효진이가 끝에 도달하는 방법이 몇 가지인지 알아내, 여기에 1234567를 나눈 나머지를 리턴하는 함수, solution을 완성하세요. 예를 들어 4가 입력된다면, 5를 return하면 됩니다.

제한 사항

  • n 1 이상, 2000 이하인 정수입니다.

문제에서 요구하는 조건은 간단했는데 패턴을 파악하는게 조금 애먹었다. 다만 다른분들이 작성해놓은 패턴을 보고 이해하면서 해결하게 되었다. n이 주어졌을 떄, 반복문을 돌면서 증가하는 i까지의 경우의 숫자를 두가지로(n-1,n-2)로의 경우의 수를 모두 더해주면 된다.

dp[n] = dp[n-1]+dp[n-2]...을 반복하는 것이다.

 


def solution(n):
    if n == 1:
        return 1 % 1234567
    elif n == 2:
        return 2 % 1234567
    else:
        a,b = 1,2
        for i in range(n-2):
            a, b  = b, a+b
        return b % 1234567

 

오늘도 TIL을 완성해서 기쁘다.

 

728x90
반응형
LIST

'TIL' 카테고리의 다른 글

99클럽 7번째  (0) 2024.03.31
99클럽 TIL 6번째  (1) 2024.03.30
99클럽 다섯번째 TIL  (0) 2024.03.29
99 클럽 TIL 세번째  (0) 2024.03.27
99 클럽 TIL 1일  (1) 2024.03.25