TIL (2024-12-20)

1. 문제 해결: 그림 확대 문제

  • 문제 요약: 주어진 picture 배열을 가로와 세로로 k배 확대하는 문제입니다. 각 문자는 k번 반복되고, 행도 k번 복제되어 세로로 확대됩니다.
  • 문제 해결 방법:
    1. 가로 확대: 각 문자를 k번 반복하여 가로로 확대합니다.
    2. 세로 확대: 한 번 확대된 행을 k번 복제하여 세로로 확대합니다.
    구현 예시:
    • 가로 확대: pic_2 * k를 통해 각 문자를 k번 반복하여 가로로 확대된 행을 생성합니다.
    • 세로 확대: 생성된 행을 k번 반복하여 세로로 확대된 결과를 추가합니다.
  • def solution(picture, k): answer = [] for pic in picture: # 각 행에 대해서 result = '' for pic_2 in pic: # 각 문자를 k번 반복하여 가로로 확대 result += pic_2 * k for i in range(k): # 가로로 확대된 행을 k번 반복하여 세로로 확대 answer.append(result) return answer
  • 확인한 점:
    • 가로 확대는 각 문자를 k번 반복하여 문자열을 생성하는 방식으로 해결됩니다.
    • 세로 확대는 가로로 확대된 결과를 k번 반복하여 세로로 확장됩니다.

2. 2차원 배열 처리 및 이중 for문 이해

  • 행과 열 처리:
    • 이중 for문에서 첫 번째 for문은 **행(row)**을 처리하고, 두 번째 for문은 **열(column)**을 처리합니다.
    • 을 처리하고 그 행의 각 을 처리하면서 데이터를 다룰 수 있습니다.
    예시:
    for i in range(3):  # 행 처리
        for j in range(2):  # 열 처리
            print(f"행 {i}, 열 {j}")  # 데이터 처리
    

3. 가로와 세로 확대의 원리

  • 가로 확대: 각 행에 있는 문자들을 k번 반복하여 가로로 확대된 결과를 만듭니다. 예를 들어, "x"가 주어졌을 때, k=2이면 "xx"로 반복됩니다.
  • 세로 확대: 가로로 확대된 결과를 k번 반복하여 세로로 확대된 결과를 만듭니다. 예를 들어, "xx"가 주어졌을 때, k=2이면 "xx"가 두 번 이어져 세로로 확장됩니다.

4. Numpy를 사용한 배열 처리

  • Numpy 배열:
    • numpy를 사용하면 2차원 배열을 더 효율적으로 처리할 수 있습니다.
    • numpy는 벡터화된 연산을 통해 반복문 없이 배열 연산을 빠르게 처리할 수 있습니다.
    예시:
    import numpy as np
    picture = np.array(['.xx...xx.', 'x..x.x..x', 'x...x...x', '.x.....x.', '..x...x..', 
                        '...x.x...', '....x....'])
    # Numpy를 사용하면 이러한 반복 작업을 벡터화된 연산으로 처리할 수 있습니다.
    

5. 이중 for문을 통한 배열 확대

  • 가로 확대: 첫 번째 for문에서 각 문자를 k번 반복하여 가로로 확대합니다.
  • 세로 확대: 두 번째 for문에서 각 행을 k번 복제하여 세로로 확대합니다.

6. 배열 크기 변환 및 이해

  • 2차원 배열에서 행과 열의 관계를 잘 이해하고 있어야 효율적인 배열 처리가 가능합니다.
    • 을 반복하며 각 을 처리하는 방식으로 코드를 작성합니다.

오늘은 2차원 배열을 다루는 문제를 풀며 가로 확대세로 확대의 원리, 그리고 이를 이중 for문을 사용하여 어떻게 처리할 수 있는지에 대해 학습했습니다. 또한, numpy를 사용하여 배열을 효율적으로 처리할 수 있는 방법도 확인했습니다. 이 내용을 바탕으로 배열 처리에 대한 이해가 더욱 깊어졌습니다. 

'내일배움캠프 TIL' 카테고리의 다른 글

2024.12.24 TIL  (1) 2024.12.24
2024.12.23TIL  (0) 2024.12.23
2024.12.19 TIL  (3) 2024.12.19
2024.12.18TIL  (1) 2024.12.18
2024.12.17 TIL 그래프 시각화  (0) 2024.12.17

+ Recent posts