티스토리 뷰

코드카타

  • 접미사인지 확인하기

문제 설명

어떤 문자열에 대해서 접미사는 특정 인덱스부터 시작하는 문자열을 의미합니다. 예를 들어, "banana"의 모든 접미사는 "banana", "anana", "nana", "ana", "na", "a"입니다.
문자열 my_string과 is_suffix가 주어질 때, is_suffix가 my_string의 접미사라면 1을, 아니면 0을 return 하는 solution 함수를 작성해 주세요.


제한사항
  • 1 ≤ my_string의 길이 ≤ 100
  • 1 ≤ is_suffix의 길이 ≤ 100
  • my_string과 is_suffix는 영소문자로만 이루어져 있습니다.

입출력 예 설명

입출력 예 #1

  • 예제 1번에서 is_suffix가 my_string의 접미사이기 때문에 1을 return 합니다.

입출력 예 #2

  • 예제 2번에서 is_suffix가 my_string의 접미사가 아니기 때문에 0을 return 합니다.

입출력 예 #3

  • 예제 3번에서 is_suffix가 my_string의 접미사가 아니기 때문에 0을 return 합니다.

입출력 예 #4

  • 예제 4번에서 is_suffix가 my_string의 접미사가 아니기 때문에 0을 return 합니다.
def solution(my_string, is_suffix):
    if my_string.endswith(is_suffix):
        return 1
    else:
        return 0
  • 정수를 나선형으로 계산하기

문제 해결을 위해, 나선형으로 배열을 채우는 로직을 구현해야 한다 각 변을 돌 때마다 방향을 바꾸고, 이미 채워진 칸이나 배열의 경계에 도달하면 방향을 바꿔야 한다 방향은 오른쪽, 아래, 왼쪽, 위 순으로 진행한다

def solution(n):
    # n x n 크기의 2차원 배열 초기화
    answer = [[0] * n for _ in range(n)]
    
    x, y = 0, 0  # 시작 위치
    num = 1  # 채워넣을 숫자
    dx = [0, 1, 0, -1]  # x 방향 이동 (오른쪽, 아래, 왼쪽, 위)
    dy = [1, 0, -1, 0]  # y 방향 이동 (오른쪽, 아래, 왼쪽, 위)
    direction = 0  # 시작 방향 (0: 오른쪽, 1: 아래, 2: 왼쪽, 3: 위)
    
    for i in range(n * n):
        answer[x][y] = num  # 현재 위치에 숫자 채우기
        num += 1  # 다음 숫자로 업데이트
        
        # 다음 위치 계산
        nx = x + dx[direction]
        ny = y + dy[direction]
        
        # 다음 위치가 배열 범위 내이고, 아직 채워지지 않았다면 위치 업데이트
        if 0 <= nx < n and 0 <= ny < n and answer[nx][ny] == 0:
            x, y = nx, ny
        else:
            # 방향 전환 (오른쪽 -> 아래 -> 왼쪽 -> 위 -> 오른쪽 ...)
            direction = (direction + 1) % 4
            x += dx[direction]
            y += dy[direction]
    
    return answer

이 코드는 주어진 n에 대해 n x n 크기의 배열을 나선형으로 채워넣는 로직을 구현한다 각 단계에서 현재 방향으로 이동할 수 있는지 확인하고 이동할 수 없다면 방향을 시계 방향으로 바꿔 다시 이동을 시도한다 모든 칸이 채워질 때까지 이 과정을 반복한다

'내일배움캠프 개발자과정 > TIL' 카테고리의 다른 글

내일배움캠프 51일차 TIL  (1) 2024.04.25
내일배움캠프 50일차 TIL  (0) 2024.04.24
내일배움캠프 48일차 TIL  (0) 2024.04.22
내일배움캠프 47일차 TIL  (0) 2024.04.21
내일배움캠프 46일차 TIL  (0) 2024.04.18
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함