일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- node
- react native accessible
- cyworld
- stencil buffer
- 리액트 네이티브 맥
- react native typescript navigate
- c++ using
- Expo
- unity stencil buffer
- react native typescript navigation
- react native
- GitHub
- react native 타입스크립트
- 리액트 네이티브 설치 오류
- react native ios 기기 연결
- react-native
- 스탠실 버퍼 튜토리얼
- 싸이월드
- 벡터와 리스트의 차이
- 스탠실 버퍼 사용
- react native typescript
- html
- react
- 스탠실 버퍼 시작
- javascript
- c++ 정보은닉
- CSS
- C++
- react native mac
- node.js
Archives
- Today
- Total
혀니의 이거저거 뿌시기
10994 별 찍기 - 19 (파이썬/재귀) 본문
728x90
10994번: 별 찍기 - 19 (acmicpc.net)
10994번: 별 찍기 - 19
예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.
www.acmicpc.net
이 문제는 계속 도전만 하고 풀지를 못했던 문젠데 다시 트라이해봤다..
def add_star(ptn):
return "* " + ptn + " *"
def star(n):
if n == 1:
return ["*"]
else:
return ['*' * (1 + 4 * (n - 1)), '*'+' ' * (4 * (n - 1) - 1)+'*']\
+list(map(add_star, star(n - 1)))\
+['*'+' ' * (4 * (n - 1) - 1)+'*', '*' * (1 + 4 * (n - 1))]
print(star(int(input())))
print("\n".join(star(int(input()))))
이건 완전히 내가 풀지는 못했고 공중에 돌아다니는 답을 참고를 많이 했다,,
이 문제의 핵심은 그 전에 갖고있는 리스트의 형태를 그대로 들고 와서 어떤 획을 추가해서 모양을 만들고 그 상태로 새로운 리스트를 만드는 것을 반복해야 했다.
그러다 보니 파이썬에서 리스트를 다루는 것에 대한 정확한 이해가 필요했다.
["*****", "* *", "* * *", "* *", "*****"]
이런 형태의 리스트를 "\n".join(lst) 꼴을 이용하여 print 해낼 수 있다거나
map함수에 대한 이해가 필요했는데
map함수 : 리스트나 튜플 형태의 반복이 가능한 것에 반복적인 함수계산을 해주는 아이이다.
이를 list()로 묶어서 새로운 리스트 형태로 탈바꿈이 가능하고
[] + [] 이런 식으로 리스트에 요소를 추가할 수가 있다.
반복해서 하다보면 실력이 늘 것이ㅏㄷ...
728x90
'알고리즘 공부(C++)' 카테고리의 다른 글
프로그래머스 C++ 타겟 넘버 (DFS) (0) | 2023.05.30 |
---|---|
백준 12782 비트 우정지수 (파이썬/그리디) (1) | 2022.10.08 |
1969 DNA (파이썬 / 브루트포스) (0) | 2022.09.29 |
백준 1021 회전하는 큐 (파이썬 / 자료구조) (0) | 2022.09.28 |
백준 1735 분수 합 파이썬 (0) | 2022.09.18 |