세월은 지나 어느덧 10년은 가뿐히 더 넘은 이야기,
중학교 2학년, 당시 그리 희귀하다던 컴퓨터부에서
컴터고문쌤이 매 점심시간마다 올림피아드에 나온 컴터 올림피아드 문제들을 하나씩 풀어주셨다
그 당시 아무런 생각도 없이 그냥 냅다 VB로 풀던 기억이 있는데
당연히도 지금은 다 까먹었다가 백준을 밀다가 하나 딱 발견했다
진짜 토씨 하나 안 바뀌고 그대로 나와있을줄은 ..
지금 보면 이걸 왜 혼자 못풀까라는 생각을 하겠지만
중학교의 나는 그것을 생각하지 못하지 않을까라 생각한다
풀이는 매우간단하다
먼저 주어질 도형의 x, y값의 비를 구한다
근데 이번 문제는 10x10으로 고정되어 있기에 비는 1:1, 길이는 10이다
그리고 각 좌표값의 +10에 해당하는 x, y의 최댓값을 구하여 1사분면의 최대값을 구한다
이거 또한 100x100으로 고정해 주었기에 100x100가 1사분면의 최댓값 되시겠다
이제 값을 구하면 된다
100x100 크기의 ary를 0으로 초기화하고
들어오는 두 개의 좌표값 to 좌표값+10, 까지의 2중 for문을 돌린다
각각의 for문의 index값이 width, height라 가정했을 때
2중 for문안에서 ary[width][height] = 1로 해당하는 좌표에 1을 넣어준다
그렇게 for문이 다 돌면 위의 그림과 같이 1사분면이 칠해져 있을 것이다
이후는 간단하다
for문으로 100줄을 돌려서
0줄부터 100줄까지의 총합을 최종변수에 계속 더해서 출력해 주면 끝이다
ary = [[0]*100 for _ in range(100)]
for total in range(int(input())):
x, y = map(int, input().split())
for width in range(x, x+10):
for height in range(y, y+10):
ary[width][height] = 1
result = 0
for i in range(100):
result += sum(ary[i])
print(result)
오랜만에 보는 문제인데 참 신기했고 재밌었다
이게 추억을 되살리는 맛인가 보다
'프로그래밍 > 파이썬' 카테고리의 다른 글
[파이썬] 4948 베르트랑 공준 feat 시간초과 (0) | 2023.02.10 |
---|---|
:: 재활을 해보자 2.. (0) | 2023.02.07 |
:: 재활을 해보자 .. (0) | 2022.10.27 |
[파이썬][맥] vscode 에서 input.txt output.txt 로 입력값 결과값 넣기 (0) | 2022.06.29 |
[파이썬] 21919 소수 최소 공배수 풀어보자 (0) | 2022.05.22 |