파이썬 백준 10798번
브론즈 1
https://www.acmicpc.net/problem/10798
문제 보기
분류: 구현, 문자열
문제 풀기
주어진 문자열을 리스트에 각각 저장하고 리스트의 길이가 넘지 않는 범위에서 순서대로 원소를 빼내어 새로운 문자열을 만든다.
2 차원 리스트를 이용하지 않고 5 개의 리스트를 간편하게 만들고 입력받기 위해 globals() 함수를 처음으로 사용해 보았다.
globals()['line_' + str(i)]
위의 형식으로 line_1, line_2, line_3, line_4, line_5 를 지정해 줄 수 있다.
5 개의 리스트에 문자열을 저장하고 for loop 을 돌리면서 조건문을 리스트의 길이보다 i 가 작을 때에만 문자를 합하도록 지정한 후 result 문자를 출력한다.
코드 보기
import sys
inputdata = sys.stdin.readline
def fnVerticalReading():
result = ""
for i in range(15):
if len(line_1) >= i + 1:
result += line_1[i]
if len(line_2) >= i + 1:
result += line_2[i]
if len(line_3) >= i + 1:
result += line_3[i]
if len(line_4) >= i + 1:
result += line_4[i]
if len(line_5) >= i + 1:
result += line_5[i]
print(result)
if __name__ == "__main__":
for i in range(1, 6):
globals()['line_' + str(i)] = list(map(str, inputdata().strip()))
print(f"line_{i} == {globals()['line_' + str(i)]}") ## TEST PRINT.
fnVerticalReading()
'''
AABCDD
afzz
09121
a8EWg6
P5h3kx
line_1 == ['A', 'A', 'B', 'C', 'D', 'D']
line_2 == ['a', 'f', 'z', 'z']
line_3 == ['0', '9', '1', '2', '1']
line_4 == ['a', '8', 'E', 'W', 'g', '6']
line_5 == ['P', '5', 'h', '3', 'k', 'x']
Aa0aPAf985Bz1EhCz2W3D1gkD6x
'''
'공부하기 > 백준' 카테고리의 다른 글
[Java] 백준 풀기 17295 - 엔드게임 스포일러 (0) | 2023.03.03 |
---|---|
[Java] 백준 풀기 5337 - 웰컴 (0) | 2023.03.02 |
[Python] 백준 풀기 1292 - 쉽게 푸는 문제 (0) | 2023.02.28 |
[Java] 백준 풀기 11382 - 꼬마 정민 (0) | 2023.02.27 |
[Python] 백준 풀기 9086 - 문자열 (0) | 2023.02.26 |