문제요약


나의 코드 및 설명
- 입력받은 문자열을 나누는 수(r), 나눠지는 수(c)를 구해서 r행, c열 순으로 글자를 저장하고, c열, r행 순으로 문자열을 출력한다.
string = list(input())
#입력받은 문자열의 길이를 저장
len_string = len(string)
#문자열의 길이의 약수를 구하는 코드
for i in range(1,len_string+1): # 6
#문자열의 길이의 약수인 i 중에서
if len_string % i == 0:
# 나누는 수(i)가 나눈 후의 몫(len_string // i)보다 작아야됨
# ex) 16 : 1, 16//1 = 16 / 2, 16//2 = 8
if i <= len_string //i:
#r = i(작은수), c = len_string//i(큰 수)
#조건을 충족한다면 r,c값은 갱신됨
r = i
c = len_string // i
#문자열을 담을 리스트 초기화
ans = [[0]*r for _ in range(c)]
cnt = 0
for i in range(c):
for j in range(r):
ans[i][j] = string[cnt]
#입력한 문자열의 인덱스를 하나씩 증가시킨다
cnt += 1
for i in range(r):
for j in range(c):
print(ans[j][i],end ="")
print()

'Baekjoon > IM Level' 카테고리의 다른 글
[백준] 1063 킹 (실버3) (2) | 2023.03.20 |
---|---|
[백준] 13300 방 배정 (브론즈2) / 딕셔너리 (0) | 2023.03.18 |
[백준] 10709 기상캐스터 (실버5) (0) | 2023.03.16 |
[백준] 3085 사탕 게임 (실버2) (0) | 2023.03.15 |
[백준] 2559 수열 (실버3) / 시간초과 해결 (0) | 2023.03.15 |
문제요약


나의 코드 및 설명
- 입력받은 문자열을 나누는 수(r), 나눠지는 수(c)를 구해서 r행, c열 순으로 글자를 저장하고, c열, r행 순으로 문자열을 출력한다.
string = list(input())
#입력받은 문자열의 길이를 저장
len_string = len(string)
#문자열의 길이의 약수를 구하는 코드
for i in range(1,len_string+1): # 6
#문자열의 길이의 약수인 i 중에서
if len_string % i == 0:
# 나누는 수(i)가 나눈 후의 몫(len_string // i)보다 작아야됨
# ex) 16 : 1, 16//1 = 16 / 2, 16//2 = 8
if i <= len_string //i:
#r = i(작은수), c = len_string//i(큰 수)
#조건을 충족한다면 r,c값은 갱신됨
r = i
c = len_string // i
#문자열을 담을 리스트 초기화
ans = [[0]*r for _ in range(c)]
cnt = 0
for i in range(c):
for j in range(r):
ans[i][j] = string[cnt]
#입력한 문자열의 인덱스를 하나씩 증가시킨다
cnt += 1
for i in range(r):
for j in range(c):
print(ans[j][i],end ="")
print()

'Baekjoon > IM Level' 카테고리의 다른 글
[백준] 1063 킹 (실버3) (2) | 2023.03.20 |
---|---|
[백준] 13300 방 배정 (브론즈2) / 딕셔너리 (0) | 2023.03.18 |
[백준] 10709 기상캐스터 (실버5) (0) | 2023.03.16 |
[백준] 3085 사탕 게임 (실버2) (0) | 2023.03.15 |
[백준] 2559 수열 (실버3) / 시간초과 해결 (0) | 2023.03.15 |