728x90
반응형
https://www.acmicpc.net/problem/10798
10798번: 세로읽기
총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’
www.acmicpc.net
문제 해결 아이디어
- 입력되는 문자열에 list 함수를 사용하여, 문자열을 모두 분리
- 문자열 5줄이 입력되므로 for문을 사용해도 되고, while문으로 입력이 다르게 들어올 경우를 대비해도 좋다.
- 입력된 배열들의 길이를 확인하여 가장 긴 배열의 길이를 확인한다.
- 최대 길이의 배열만큼 값을 확인하고 만약 더 짧은 배열이라면 except문을 사용하여 다음 배열로 이동
- 최종 출력값을 저장할 변수를 str으로 선언하여 추가함
소스 코드 (Python)
def txt_read(arr):
max_length = 0
answer = ''
for s in arr:
if len(s) >= max_length:
max_length = len(s)
else: pass
for idx in range(max_length):
for arr2 in arr:
try:
answer += arr2[idx]
except:
continue
return answer
if __name__ == '__main__':
arr = []
while True:
try:
arr.append(list(input()))
except EOFError:
break
print(txt_read(arr))
결과
굿굿
try문 굉장히 강력하지만... 다른 언어로 작성할 때도 이 문제들을 풀어나갈 수 있을 지 확신이 없다.
반응형
'코딩테스트' 카테고리의 다른 글
[프로그래머스] 달리기 경주 (lv1, Python) (0) | 2023.08.14 |
---|---|
[백준] 2738번: 행렬 덧셈 (브론즈5, Python) (0) | 2023.08.03 |
[백준] 2566번: 최댓값 (브론즈3, Python) (0) | 2023.08.02 |
[백준] 2444번: 별 찍기 - 7 (브론즈3, Python, for문 한번 사용) (0) | 2023.08.01 |
[백준] 25206번: 너의 평점은 (실버5, Python) (0) | 2023.07.31 |