728x90
📌 문제
https://www.acmicpc.net/problem/5556
📌 문제 접근 방법
- 처음엔 타일의 인덱스를 받아서 타일이 바깥쪽에서 얼마나 안으로 들어와있는지를 num을 통해서 구했다.
→ 시간초과 - 시간초과가 나고 N의 범위를 보니, 타일의 인덱스를 받자마자 거기서 계산해서 바로 나와야 하는 것 같았다.
- 우선, 타일의 인덱스를 타일의 중심을 기준으로 왼쪽 위부분만 고려하도록 인덱스를 변형해줬다.
- 왼쪽 위 부분만 본다면, 한 행에 i개의 색깔을 쓸 수 있다.
- 따라서 j가 i보다 작다면 j의 인덱스를 3으로 나눈 것이 색깔의 번호가 된다.
- j가 i보다 크다면 i번째 행에 있는 마지막 색깔을 가지게 된다. i를 3으로 나눈 것이 색깔의 번호가 된다.
📌 코드
# 백준 5556 타일
N = int(input())
K = int(input())
tiles = [list(map(int, input().split())) for _ in range(K)]
for i, j in tiles:
if i > (N+1)/2:
i = N+1-i
if j > (N+1)/2:
j = N+1-j
if i > j:
answer = j%3
else:
answer = i%3
if answer == 0:
answer = 3
print(answer)
728x90
'ALGORITHM > BAEKJOON' 카테고리의 다른 글
[BOJ/Python] 17471. 게리맨더링 (0) | 2021.10.13 |
---|---|
[BOJ/Python] 14503. 로봇 청소기 (0) | 2021.10.13 |
[BOJ/Python] 2579. 계단 오르기 (0) | 2021.10.08 |
[BOJ/Python] 1208. 부분수열의 합2 (0) | 2021.10.08 |
[BOJ/Python] 2473. 세 용액 (0) | 2021.10.07 |
댓글