코딩테스트/백준

백준 2290 LCD Test 풀이 (파이썬) 시뮬레이션 연습하기

RyanKwon 2021. 11. 5. 20:00
728x90

코드만 궁금한 분은 깃허브링크 눌러주세요~

 

GitHub - Rhyankwon/algorithms

Contribute to Rhyankwon/algorithms development by creating an account on GitHub.

github.com

 

문제 설명 ㄱㄱ

숫자를 입력받아 마치 LCD시계에 표시하듯 표시하면 되는 문제이다. 딱봐도 슬라이싱만 잘 활용하면 되는 문제.

 

 

 

문제 해결 논리

 

흠 논리랄게 있나? 위에 설명한대로 슬라이싱만 잘 하면 되는데, 딱 봐도 구현문제라 그냥 더럽게 푸는게 맞다.

 

나같은 경우는 8을 봤을때 맨위, 가운데, 맨아래의 '--'부분과 윗쪽의 좌-우 '|' 부분, 아랫쪽의 좌-우 '|' 부분 이렇게 총 7군데를 나눠서 풀었다. 숫자별로 출력 크기는 다르게될지 몰라도 표시해야하는 부분은 다 똑같으니까, 미리 각 부분별로 출력형식을 정의해두고 풀었다.

 

공백으로 이루어진 s+2의 가로, 2s+3의 세로를 갖는 2차원 리스트를 숫자의 갯수 길이만큼 선언하고(결국 3차원 리스트가 된다), 각 숫자에서 각각 표시해야하는 부분에 '-'와 '|'를 추가한다. 조금 쉽게 말하자면, 리스트[현재 숫자의 순번][행][열]이 각 요소이다.  이렇게 하면 3차원 리스트가 완성되는데 맨 윗줄부터 join함수를 써서 문자열로 바꿔서 출력해주면 된다. 

 

나는 출력형식에서 거의 20분을 소모했는데 여러분은 ..여기서 크게 헷갈리지 않으면 좋겠다. 맨 오른쪽 숫자가 끝난 뒤에는 오른쪽에 공백이 없어야한다. 후..... 지겨워,,, 문제를 30분정도 걸려서 풀었는데 출력형식때문에 20분을 소모함;;

 

728x90