티스토리 뷰
답은 항상 위에 와야죠~ 사실 전치는 안하고 바로 세로 읽기로 가도 됩니다. (이때는 세로 출력을 어려워해서 항상 전치 했음)
2차원 배열을 배우게되면서 자신감이 생긴 마음으로 백준을 켰다. 문제 이름을 봤을 때 ' 세로읽기 ' ? Easy하지 하면서 코드를 써내려가고 있었고, 1번 테스트 케이스는 무난하게 통과했다. 하지만 2번을 보았더니.. N x N 행렬이 아니라 행에 주어진 단어 길이가 다르더라.. 바로 indexerror한테 뚜들겨 맞고 처음으로 돌아왔다.
문제의 예시로 아래와 같다.
가장 먼저 테스트 해본 것은 열의 개수가 다르더라도 전치가 진행 되는지 확인했다. 당연한것도 생각으로 끝나지 않고 직접 코드를 돌려보니 out of range Hi~ 그만보고싶다. 다시 되돌아와서
다음 아이디어는 어차피 문자열 최대 15개에 5줄이면 공백이 15 x 15 인 빈 문자열을 선언한 다음, 전치를 진행하고 15 x 15 배열 그대로 출력하면 되지 않을까 했다. 사실 공백으로 15개 문자열 선언해도 빈 리스트로 뜨는지 안뜨는지도 모르고 일단 진행해서 만들어보니, 전치까지는 가능했다.
물론 나중에 15개를 굳이 만들 필요 없이 최고 문자열의 개수를 찾아서 그만큼만 빈칸을 추가해줬다.
그래서 나왔던 초기 설정은
이다.
여기서 max_len 길이에 모자란 만큼만 빈칸을 추가해주면 되기 때문에
를 통해 공백을 추가해줬다. (백준 2번 input 값 참고)
[['A', 'A', 'B', 'C', 'D', 'D'], ['a', 'f', 'z', 'z', '', ''], ['0', '9', '1', '2', '1', ''], ['a', '8', 'E', 'W', 'g', '6'], ['P', '5', 'h', '3', 'k', 'x']로 출력됨을 알 수 있었다.
다음 문제는 전치를 하는 거였는데, 원래는 2중 for문을 통해서 2차원배열 데이터에 접근한 다음에 조건문 if 를 통해 i와 j의 비교 연산을 확인해서 우하향 대각선 기준으로 뒤집는 것인데, 강의에서 좋은 전치방식을 외워와서 바로 사용해봤다.
전치까지 완료 됐으면 출력만 해주면 깔끔하다.
은근히 헤맸던 구간인데, 문자열 ' '을 포함해서 나오거나, 여러줄을 통해 출력이 되어버리거나 했기 때문에,
[['A', 'a', '0', 'a', 'P', 'D'], ['A', 'f', '9', '8', '5', ''], ['B', 'z', '1', 'E', 'h', ''], ['C', 'z', '2', 'W', '3', '6'], ['D', '', '1', 'g', 'k', 'x'] 이라든가
A
a
0
a
P
A
f
9
8
5
B
z
1
E
h
C
z
2
W
3
D
1
g
k 라든가...
아직 정확히 개념이 안잡혀서 그런 것 같긴한데, 언패킹의 사용, 반복문 for문을 통한 print + sep, end를 사용하면 적절하게 출력할 수 있을 것이다.
'일상코딩 > 백준 문제 풀이' 카테고리의 다른 글
백준 1541번 : 잃어버린 괄호 (문제 따라가기) (1) | 2024.03.24 |
---|---|
백준 : 9663번 N-Queen (0) | 2024.03.10 |
백준 2477번 : 참외밭 (도움 안됨 주의) (0) | 2024.03.04 |
백준 10816번 : 숫자카드 2 (0) | 2024.02.03 |
백준 2559번 : 수열 (0) | 2024.01.28 |
- Total
- Today
- Yesterday
- 삼성청년SW아카데미
- Sequence types
- 카운팅정렬
- 함수
- Django
- app
- CodeTree
- SQL
- SQLite
- 백준
- 재귀
- 연산자
- Component
- Database
- Python
- refactoring
- JavaScript
- ChatGPT
- basic syntax
- Authentication System
- views.py
- HTML
- dfs
- baby-gin
- vue
- vue3
- honeymoney
- 순열
- Method
- ssafy
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |