728x90
반응형
풀기 전 생각해보기😮
- 이차원 배열을 생성할 수 있는가
- 이차원 배열 구조에서 원하는 위치의 요소를 선택할 수 있는가
풀이🛫
# 2804 크로스워드 만들기
# Bronze II
word1, word2 = input().split()
# 이차원 배열 생성
arr = [['.' for i in range(len(word1))] for j in range(len(word2))]
# word1, word2에서 겹치는 글자의 인덱스 찾기
idx = 0
for i in word1:
if i in word2:
idx = i
break
# word1, word2에서 겹치는 글자의 인덱스 찾기
crs_idx_1 = word1.index(idx) # 1
crs_idx_2 = word2.index(idx) # 4
# 인덱스를 기준으로 arr에 글자 입력
for i in range(len(word1)):
arr[crs_idx_2][i] = word1[i]
for i in range(len(word2)):
arr[i][crs_idx_1] = word2[i]
# 출력
for i in arr:
print(''.join(i))
핵심 정리🎁
arr = [[0 for j in range(cols)] for i in range(rows)]
- 이차원 배열을 생성할 때 위와 같은 리스트 구조를 이용하자
# 이차원 배열 arr에서 row번째 행, cols번째 열에 접근
target = arr[col][row]]
- rows와 cols의 위치를 주의해야 한다.
행렬('행','열') 단어의 익숙함 때문에 혼동하기가 매우 쉽다.
이차원 배열의 첫번째 인덱스는 '열'을, 두번째 인덱스는 '행'을 가리킨다고 생각해야 한다.
링크💎
후기 😎
- 오랜만의 이차원 배열 문제라 어렵게 느껴졌다.
'Algorithm Study > Python' 카테고리의 다른 글
[백준 파이썬] #4396 지뢰 찾기 (0) | 2022.08.17 |
---|---|
[Algorithm Study] 파이썬 부분집합 구하기 예시 (0) | 2022.08.11 |
[백준 파이썬] # 2447 별 찍기 - 10 (0) | 2022.03.10 |
[백준 파이썬] # 1966 프린터 큐 (0) | 2022.03.09 |
[백준 파이썬] # 11279 최대 힙 (0) | 2022.03.06 |