Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 상속
- 난수중복제거
- 에러
- 노드
- 이진노드
- 클라이언트
- operator==
- 함수객체
- C++
- 과제
- 이진트리
- list
- bind
- greater
- BST
- 자료구조
- c2678
- placeholder
- 과제5차
- 소켓 프로그래밍
- 튜토리얼
- 멀티스레드
- 네트워크 프로그래밍
- 동빈나참고
- Git
- GitHub
- remove_if
- 이진순회트리
- 채팅프로그램
- 연산자오버로딩
Archives
- Today
- Total
강아지를 좋아하는 컴공생
백준 10798 세로읽기 (파이썬 / python) 본문
다른 사람 코드(정답)
words = []
length = []
for _ in range(5):
word = input()
words.append(word)
length.append(len(word))
rst=''
for i in range(max(length)):
for j in range(5):
if i < length[j]:
rst += words[j][i]
print(rst)
출처 : https://wondytyahng.tistory.com/entry/%EB%B0%B1%EC%A4%80-10798-%EC%84%B8%EB%A1%9C%EC%9D%BD%EA%B8%B0
실패한 내 코드
# 세로 읽은 문자 출력
# 행에 원소 개수가 최대 찾은 후 공백 부분을 -1로 채우기
# -1이 아닐 경우에만 append하기
# 행렬 입력받기
matrix = []
for _ in range(5):
matrix.append(list(map(int,input().split())))
# 원소 최대 개수 찾기
max_len = len(matrix[0])
for i in range(1,5):
if(max_len<len(matrix[i])):
max_len = len(matrix[i])
# 행의 원소 개수가 최대 원소 개수보다 작을 경우
# max_len이 될 때까지 append(-1)
for row in matrix:
while len(row) < max_len:
row.append(-1)
# 세로로 읽기
# -1가 아닌 경우에만 read.append()
read = []
for j in range(max_len):
for i in range(5):
if matrix[i][j] != -1:
print(matrix[i][j],end='')
# 배열 → 문자열로 공백없이 변경(join)
print(''.join(map(str,read)))
최대 길이보다 작을 경우, -1을 추가했는데
그럴 필요가 없었다는 것을 알게 됐다.
행의 길이만큼, 읽을 수 있을 때까지만 읽으면 됐다.
for i in range(len(row))
for문이 낭자한 비효율적인 내 코드 ..
gpt를 돌려봐도 아직도 어디가 틀린건지 잘 모르겠다