우주에서 글을 적어본다
99클럽 코테 스터디 1일차 TIL + 2차원 배열을 1차원 배열로 변환 본문
- 오늘 학습 키워드 및 문제
- 프로그래머스 "n^2 배열 자르기" 문제를 풀었다.
- 키워드는 "2차원 배열을 1차원 배열로 변환"
- 다음과 같이 배열에 숫자를 집어넣어야 한다.
- 파이썬 코드
def solution(n, left, right):
answer = []
for i in range(left, right + 1):
row = i // n
col = i % n
answer.append(max(row, col) + 1)
return answer
(0, 0) | (0, 1) | (0, 2) |
(1, 0) | (1, 1) | (1, 2) |
(2, 0) | (2, 1) | (2, 2) |
n = 3일 때, 나오는 배열의 (i, j)을 준비한다.
행과 열 가운데 더 큰 값에 +1을 해주면 된다. (배열이 0부터 시작하므로)
- 오늘의 회고
- 처음에는 2차원 배열을 만들어야 겠다고 생각했으나, 그러지 않고 각 요소의 값을 직접 계산하는 방법을 써야 했다.
- 각 행과 열의 최대값 중 더 큰 값이 해당 위치의 값이 된다. 즉 max(i, j)로 각 위치의 값을 채울 수 있다. 규칙을 빠르게 발견해야 하는 게 중요한 것 같다. 직접 손으로 배열을 그려 규칙을 찾아보자.
- 따라서 for문을 두 번 돌리지 않고 left에서 right까지의 for문 한 번으로 문제를 해결할 수 있었다.
- 이런 기본적인 내용들은 까먹지 말고 늘 머릿속에 담아 둬야겠다. 끝!
'항해99 TIL' 카테고리의 다른 글
99클럽 코테 스터디 5일차 TIL + 해시(Hash) + in 연산자 (0) | 2024.07.26 |
---|---|
99클럽 코테 스터디 4일차 TIL + capitalize() (0) | 2024.07.25 |
99클럽 코테 스터디 3일차 TIL + 정렬 (0) | 2024.07.24 |
99클럽 코테 스터디 2일차 TIL + 배열 (0) | 2024.07.23 |
99클럽 코테 스터디 2일차 TIL + 유클리드 호제법 (0) | 2024.07.23 |