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 |
Tags
- suninatas
- Los
- UKPT
- 기타정보
- HTML
- UKPT level
- 파이썬
- 국정원
- webhacking
- 국가기록원
- 여행
- 화학물질불법유통온라인감시단
- 화학물질안전원
- 화학물질
- 도구모음
- 12기
- 대외활동
- Service
- 경기팀
- PHP
- 정보보안
- codeup
- 불법유통근절
- 웹 해킹 입문
- 불법유통
- MITRE ATT&CK
- 연구모임
- 프로젝트
- 국가정보원
- nurisec
Archives
- Today
- Total
agencies
파이썬 달팽이 배열 값 입력 본문
def prt(message):
# 입력 메시지의 길이 계산
length = len(message)
# 배열의 크기 결정 (가로, 세로)
if length ** 0.5 % 1 != 0: # 만약 메시지의 길이가 제곱수가 아니라면
size = int(length ** 0.5) + 1 # 달팽이 배열의 크기는 제곱근에 1을 더한 값
else: # 메시지의 길이가 제곱수라면
size = int(length ** 0.5) # 달팽이 배열의 크기는 제곱근
# 2차원 배열 생성
snail_array = []
for i in range(size):
inner_list = []
for j in range(size):
inner_list.append(' ')
snail_array.append(inner_list)
# 달팽이 배열에 메시지 입력
row, col = 0, 0
direction = [(0, 1), (1, 0), (0, -1), (-1, 0)]
direction_index = 0
for char in message:
snail_array[row][col] = char
next_row = row + direction[direction_index][0]
next_col = col + direction[direction_index][1]
if next_row < 0 or next_row >= size or next_col < 0 or next_col >= size or snail_array[next_row][next_col] != ' ':
direction_index = (direction_index + 1) % 4
next_row = row + direction[direction_index][0]
next_col = col + direction[direction_index][1]
row, col = next_row, next_col
# 달팽이 배열 출력
for row in snail_array:
print(' '.join(row))
# 사용자 입력 받기
msg = input("INPUT: ")
# 달팽이 배열 형태로 메시지 출력
prt(msg)
'Ⅰ. 프로그래밍' 카테고리의 다른 글
누리캅스 반 자동화 신고 프로그램 (누리서치) 개발 (0) | 2024.03.02 |
---|---|
happy cat 웹 페이지 만들기 (html) (0) | 2024.02.22 |
리눅스 기초 셸 스크립트 및 명령어 (0) | 2024.02.15 |
파이썬 프로그래밍 (터틀그래픽) (0) | 2024.01.29 |
파이썬 프로그래밍을 통한 ben.exe 프로그램 제작하기 (0) | 2024.01.29 |