Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- 알고리즘
- Algorithm
- AOS
- 1766
- 디자인패턴
- Heap
- 12865
- 파이썬
- 프로그래머스
- BFS
- CS
- deque
- 백준 #알고리즘 # Algorithm #파이썬
- 2941
- 안드로이드
- python #7490 #백준 #알고리즘 #BFS
- 1715
- 라이징프로그래머2 #Android #안드로이드 #Quitter #MakeUs
- 해커랭크
- level3
- 파이팅
- 최소힙
- 백준
- MVC
- Python
- 1302
- 1697
- 1759
- REST API
- 올바른 괄호
Archives
Liam 일지
배열 평탄화 본문
728x90
문제: 다음과 같이 주어진 배열을 평탄화(1차원배열로 나타내시오)
arr = [1, 2, [3, 4, 5], 6, [[7]]]
문제해설:
dfs방식으로 각 리스트의 인덱스별로 안에 들어있는 원소가 리스트인지 isinstance()라는 내장함수를 이용하여 판단합니다. 리스트인경우 그 리스트를 for문을 통하여 새로운 배열에 값을 넣습니다.
result = []
def solve(arr, cnt):
if cnt == len(arr):
print(result)
return
if isinstance(arr[cnt], list):
for i in range(len(arr[cnt])):
if isinstance(arr[cnt][i], list):
for j in range(len(arr[cnt][i])):
result.append(arr[cnt][i][j])
else:
result.append(arr[cnt][i])
cnt += 1
solve(arr, cnt)
else:
result.append(arr[cnt])
cnt += 1
solve(arr, cnt)
arr = [1, 2, [3, 4, 5], 6, [[7]]]
solve(arr, 0)
사용언어: python
tip: 파이썬에 내장함수 isinstance(value,list)를 사용하면 value가 리스트인지 아닌지를 판별할 수 있습니다.
이를 통해서 다차원 배열을 원소가 리스트인지 파악하여 리스트인경우 그 리스트의 원소를 result리스트에 넣는 방식을 사용하여 1차원배열로 나타낼 수 있었습니다.
'Algorithm(백준)' 카테고리의 다른 글
| 백준 2644번 촌수계산 (0) | 2021.04.30 |
|---|---|
| Hacker Rank (Climbing the Leaderboard) (0) | 2021.04.30 |
| 백준 2941번 크로아티아 알파벳 (0) | 2021.04.28 |
| 백준 1325번 효율적인 해킹 (0) | 2021.04.24 |
| 백준 1012번 유기농 배추(python) (0) | 2021.04.24 |