안경잡이 구루루

백준 10798 (세로읽기) [Python/파이썬] 본문

파이썬(Python)/문제풀이(백준,BaekJoon)

백준 10798 (세로읽기) [Python/파이썬]

구루루(gururu) 2023. 8. 31. 15:31
반응형

https://www.acmicpc.net/problem/10798

 

10798번: 세로읽기

총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’

www.acmicpc.net

 


나:

words =[input() for _ in range(5)]
result=''

for i in range(15):
  for j in range(5):
    if i <= len(words[j])-1:
      result += words[j][i]
print(result)

완성된 코드는 위와 같다. 

 

(1)
words =[input() for _ in range(5)]
result=''

2차원 배열을 이용하기 위해 반복문 for문을 이용해 입력값을 받았다.

이때 한줄로 for 반복문을 표현한 부분에 주목.

글자들을 공백 없이 연속해서 출력할 문자들이 들어갈 변수 result를 선언

 

(2)
for i in range(15):
  for j in range(5):
    if i <= len(words[j])-1:
      result += words[j][i]
print(result)

한줄에 단어는 최대 15개 까지라서 젤 처음 반복문 for 의 range()함수의 값을 15로 정함

두번째 반복문 for는 총 단어가 5개라서 range() 함수의 값을 5로 정함

이때 위 예제입력1 같은 상황처럼 공백이 발생하는 상황이면 result에 문자를 추가해갈 때 out_of_range 가 발생

그래서 한줄에 입력한 글자들의 개수를 len() 함수로 구하고 range() 와의 차이를 반영해 -1 을 해주었다.

이렇게 되면 범위에서 벗어나는 경우 반복문이 실행 되지 않게 된다.

 

 

 

반응형