코드만 궁금한 분은 깃허브 링크 눌러주세요!
GitHub - Rhyankwon/algorithms
Contribute to Rhyankwon/algorithms development by creating an account on GitHub.
github.com
17136번: 색종이 붙이기
<그림 1>과 같이 정사각형 모양을 한 다섯 종류의 색종이가 있다. 색종이의 크기는 1×1, 2×2, 3×3, 4×4, 5×5로 총 다섯 종류가 있으며, 각 종류의 색종이는 5개씩 가지고 있다. <그림 1> 색종이를 크
www.acmicpc.net

문제 풀이
1. (0, 0) 부분부터 (9,9) 부분까지 모두 각각 1x1 부터 5x5 까지 색종이가 들어갈 수 있는지 확인해본다.
2. 이 때, 당연히 각 부분이 1인 경우에 대해서만 색종이를 대입해보고 만일 0이면 다음 부분 (x+1, y)혹은 (x, y+1)로 넘어간다. 나는 x+1, y부분으로 넘기는 식으로 했는데 이론적으론 아무렇게나 해도 상관x
3. 이 때, 각 부분마다 들어갈 수 있는 색종이 종류가 여러개일 수 있으므로 재귀를 통해 하나의 가능한 색종이에 대해 탐색이 끝나면, 탐색시 색종이를 덮은 부분을 1 -> 0으로 모두 바꿨다가 다시 0 -> 1로 해서 새로운 색종이로 탐색한다.
4. 매번 탐색이 끝나는 경우마다 (9째 열 혹은 행까지 끝나는 경우마다) 색종이 갯수를 업데이트한다.
여기에서 가장 중요한 부분은 3번인 것 같은데, 이 부분을 코드로 보면 아래와 같다.
for k in range(i+1):
for j in range(i+1):
grid[x+k][y+j] = 0
paper[i] += 1
func(x+i+1, y, cnt+1)
paper[i] -= 1
for k in range(i+1):
for j in range(i+1):
grid[x+k][y+j] = 1
전체 코드를 보고싶으면 맨 위 깃허브 링크를 누르면 된다.
---------------------------------------------------------------------------------------------
1. 처음에는 큰 색종이부터 하나씩 넣어봐야하는 것 같아서 그렇게 문제를 풀다가 웬지.. 예외처리하기가 상당히 까다로울 것 같아서 빠르게 gg쳤다.
2. 그래서 전부 다 해봐야하나? 하고 다른 풀이를 검색해봤는데 그냥 다 해봐야된다고 해서.. 해당 풀이를 조금 참고해 문제를 풀었다. 근데 문제를 풀고나서 보니까 코드가 완전히 똑같아졌다.
https://chldkato.tistory.com/167
백준 17136 색종이 붙이기 (파이썬)
https://www.acmicpc.net/problem/17136 과 같이 정사각형 모양을 한 다섯 종류의 색종이가 있다. 색종이의 크기는 1×1, 2×2, 3×3, 4×4, 5×5로 총 다섯 종류가 있으며, 각 종류의 색종이는 5개씩 가지고 있..
chldkato.tistory.com
위 링크를 참고했다.
3. 확실히 삼성 구현문제.. 어렵다. 귀찮고 까다롭고 어렵다. 정말 이렇게 푸는게 맞아? 싶으면 맞다. 삼성..준비 열심히해야겠다.
'코딩테스트 > 삼성 기출' 카테고리의 다른 글
| 백준 14891 톱니바퀴 코드, 해설(파이썬)/ 삼성기출, 실버1 구현문제 (0) | 2022.03.03 |
|---|---|
| 백준 17406번 배열 돌리기 4 파이썬 해설/코드, 구현 문제, 삼성 A형 기출, 골드4 (0) | 2022.01.08 |
| 백준 17135번 캐슬 디펜스 풀이/해설/코드 (파이썬) 삼성 A형 기출 (0) | 2021.09.24 |
| 백준 17070번 파이프 옮기기 1 문제 풀이/코드 해설 (파이썬) 삼성 A형 기출 (0) | 2021.09.24 |
| 백준 16637번 괄호 추가하기 코드/해설 (파이썬) (0) | 2021.09.23 |