TIL (2024-12-20)
1. 문제 해결: 그림 확대 문제
- 문제 요약: 주어진 picture 배열을 가로와 세로로 k배 확대하는 문제입니다. 각 문자는 k번 반복되고, 행도 k번 복제되어 세로로 확대됩니다.
- 문제 해결 방법:
- 가로 확대: 각 문자를 k번 반복하여 가로로 확대합니다.
- 세로 확대: 한 번 확대된 행을 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 |