코딩테스트/백준

백준 16113 파이썬 풀이, 코드 (시뮬레이션 문제!)

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

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

 

개인적으로 시뮬레이션 문제들은 일반적으로 한시간정도는 구현하는데에 시간이 소요되는 것 같다.

지금도 뭐 풀만한것같아서.. 풀어봤는데 한시간 걸림..ㅡㅜ

 

 

문제 설명

 

참고로 맨 위 8317의 길이는 90이다. 좋은 테스트케이스이니까 활용해보자.

 

문제 해결 논리

 

맨 윗쪽 줄의 맨 왼쪽 값부터 시작한다. 만약 현재값이 '#'이면 해당칸을 포함해서 3열 * 5행만큼의 칸이 어떤 수인지 확인한다. 만약 해당 값이 1이면 오른쪽으로 2칸만 움직이고, 그 외의 값은 3칸씩 모두 사용하므로 4칸을 옮겨서 다시 그 값이 '#'인지 확인한다. 공백이 1칸 이상이므로 만일 해당 값이 ' . ' 이면 오른쪽으로 1칸만 움직인다.

 

맨 마지막 혹은 그 앞쪽 열에 1이 들어가는 경우 3열 * 5행만큼의 칸이 확보되지 않으므로 그런 경우는 오른쪽 끝에 ' . '을 붙여서 3열 * 5행을 구성한다. 물론 이렇게 안 풀 수도 있겠지만 나는 3열 * 5행짜리 8을 구성하는 템플릿을 만들어서템플릿과 현재 리스트를 비교하는 식으로 숫자를 확인했기 때문에 두 리스트의 가로/세로 길이가 다르면 안 돼서 그렇게 풀었다.

 

 

 

-------------------------잡담---------------------------

확실히 구현문제는 딱 보기에 쉬워보여도 어렵고 딱 봤을때 어려워보이면 정말정말 어렵다. 쉬운문제라고 하더라도 뭐랄까.. 사이에 자칫하면 헷갈리기 십상이다. 요새 구현쪽으로 문제가 많이 나오는 것 같던데 그 이유가 있다.

728x90