https://www.acmicpc.net/problem/2999
난이도 : 브론즈 1
태그 : 구현, 문자열
설명
R <= C이고, R * C = N인 경우 중, R이 가장 큰 값을 구해 문자열을 해독하는 문제입니다.
소스코드
str = input()
len = len(str)
x, y = 0, 0
for i in range(1, int(len / 2) + 1):
for j in range(i, len + 1):
if i * j == len:
x, y = i, j
for i in range(x):
for j in range(y):
print(str[i + j * x], end='')
첫 이중 for문은 R, C를 구하는 부분입니다.
R <= C, R * C = N 중 R이 가장 큰 값을 찾기 위해,
문자열 길이의 절반만큼 반복하며, 조건에 맞는 R, C를 찾습니다.
두 번째 이중 for문은 문자열을 해독하는 부분입니다.
boudonuimilcbsai 문자열이 있을 때,
boud / onui / milc / bsai 4개의 부분으로 자르고,
각 문자열의 i번째 문자를 하나씩 출력합니다.
'코딩테스트 > Python' 카테고리의 다른 글
[백준 2675번] [Python] 문자열 반복 (0) | 2023.01.15 |
---|---|
[백준 2941번] [Python] 크로아티아 알파벳 (0) | 2022.12.21 |
[백준 2057번] [Python] 팩토리얼 분해 (0) | 2022.11.29 |
[백준 2909번] [Python] 캔디 구매 (0) | 2022.11.29 |
[백준 1427번] [Python] 소트인사이드 (0) | 2022.11.26 |