반응형
https://www.acmicpc.net/problem/2563
2563번: 색종이
가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록
www.acmicpc.net
내 코드
import sys
read = sys.stdin.readline
n = int(read().strip())
board = [[0]*101 for _ in range(101)]
for i in range(n):
x, y = map(int, read().split())
for row in range(x, x+10):
for col in range(y, y+10):
board[row][col] =1
cnt =0
for i in range(100):
for j in range(100):
if board[i][j] == 1:
cnt +=1
print(cnt)
1의 합계를 구하는 여러가지 방법
방법 1
for i in range(100):
for j in range(100):
if board[i][j] == 1:
cnt +=1
방법 2
나는 이중 for문을 통해서 구했지만 다른 사람들은 또 다른 방법으로도 풀더라.
for i in board:
cnt += sum(i)
board에 있는 전체 1들을 하나씩 더해주는 것이다.
방법 3
for i in board:
cnt += i.count(1)
이건 정말 신박한 방법인 듯.. 보고 감탄했다!
주의사항
※ 대신 이건 안 된다!
for i in board:
cnt += int(i)
↑ 이 방법은 board 안에 있는 i를 더하려고 하는 의도는 맞지만...int로 변환 가능한 것은 string만 가능하고 list는 안 된다는 점!
반응형
'코딩테스트 대비 > 백준(BOJ)' 카테고리의 다른 글
| [Python][백준/BOJ] 1764번 : 듣보잡 (0) | 2023.06.19 |
|---|---|
| [Python][백준/BOJ] 27866번 : 문자와 문자열 (0) | 2023.06.19 |
| [Python][백준/BOJ] 2566번 : 최댓값 (0) | 2023.06.19 |
| [Python][백준/BOJ] 5597번 : 과제 안 내신 분..? (0) | 2023.06.19 |
| [Python][백준/BOJ] 10813번 : 공 바꾸기 (0) | 2023.06.19 |