링크 : https://www.acmicpc.net/problem/2563
2563번: 색종이
가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록
www.acmicpc.net
- 문제
- 소요시간: 25분(초과)


- 설계하기(접근방법)
1. 입력받기
조건에 맞게 입력받는다
2. 구현하기
구현 자체가 어렵지 않다
[0] 이 100개 들어간 리스트 100개를 생성한다
그 후 좌표를 입력받고
x 축 좌표 + 10
y 축 좌표 + 10까지
0을 1로 바꿔준다
3. 출력하기
리스트 내의 1의 개수를 더하고 출력한다
- 코드(출력)
paper = int(input())
sheet = [[0] * 100 for _ in range(100)]
for i in range(paper):
x , y = map(int, input().split())
for j in range(10):
for k in range(10):
sheet[y+ k][x + j] = 1
colored = 0
for i in sheet:
for j in i:
if j == 1:
colored += 1
print(colored)
- 얻어갈 부분
1. 구현 자체는 얼마 걸리지 않았으나 한번의 시도마다 1000칸씩 칠해졌다.
그 이유는 배열을
[[0] * 100] * 100으로 선언했기 때문이다
같은 []로 덮여 있어도
[0] * 100은 0 이라는 정수가 100개 있는 리스트 1개를 생성하지만
[0,0,0] * 100은 리스트 100개를 생성해주는 것이 아닌
한 객체를 100번 참조하여 복사하기 때문에
한 리스트만 변경해도 모든 리스트가 변경된다
따라서
[[0] * 100 for _ in range(100)] 반복문을 통해
배열을 복사해야 100개의 객체가 생성된다
'알고리즘(백준) > 구현' 카테고리의 다른 글
| [알고리즘/구현] 21608번 : 상어 초등학교 - python (0) | 2024.02.14 |
|---|---|
| [알고리즘/구현] 20055번 : 컨베이어 벨트 위의 로봇 - python (0) | 2024.01.02 |
| [알고리즘/구현] 14503번 : 로봇 청소기 - python (1) | 2023.12.29 |
| [알고리즘/구현] 1138번 : 한 줄로 서기 - python (0) | 2023.12.29 |
| [알고리즘/구현] 20006번 : 랭킹전 대기열 - python (1) | 2023.12.29 |