Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- 포도주시식
- webpack
- X
- 디스코드 봇
- background script
- popup
- 공부시간측정어플
- discord.js
- 2156
- 자료구조
- Message Passing
- 프로그래머스 #정수삼각형 #동적계획법
- nodejs
- 파이썬
- 동적계획법
- 백준
- 크롬 확장자
- TypeScript
- 백준 7579
- 갓생
- Chrome Extension
- react
- 백준 #7568번 #파이썬 #동적계획법
- 캠스터디
- content script
- C언어로 쉽게 풀어쓴 자료구조
- supabase
- 크롬 익스텐션
Archives
- Today
- Total
히치키치
[백준] 15685번 : 드래곤 커브 - Python(파이썬) 본문
문제
https://www.acmicpc.net/problem/15685
15685번: 드래곤 커브
첫째 줄에 드래곤 커브의 개수 N(1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 드래곤 커브의 정보가 주어진다. 드래곤 커브의 정보는 네 정수 x, y, d, g로 이루어져 있다. x와 y는 드래곤 커
www.acmicpc.net
정리
- d 시작 방향 (0 ≤ d ≤ 3)
0) x좌표가 증가하는 방향 (→)
1) y좌표가 감소하는 방향 (↑)
2) x좌표가 감소하는 방향 (←)
3) y좌표가 증가하는 방향 (↓) - 세대에 따른 숫자 표현
0:0
1:0 1
2:0 1 2 1
3: 0 1 2 1 2 3 2 1
4: 0 1 2 2 3 3 2 1 2 3 0 3 2 3 2 1 - 이전 세대의 역방향으로 +1 한 방향 가르킴
- 100 * 100 안에 드래곤 커브 N개 존재 -> 1*1의 모든 꼭짓점이 드래곤 커브 일부인 것 구하기
예제 이해
코드
#문제: https://www.acmicpc.net/problem/15685
import sys
input = sys.stdin.readline
dx = [0, -1, 0, 1] #위아래 좌우 이동
dy = [1, 0, -1, 0]
n = int(input()) #드래곤 커브 갯수
plane = [[0] * 101 for i in range(101)] #드래곤 커브 그릴/담을 부분
for i in range(n): #시작점(x), 시작점(y), 방향, 세대 입력 받음
y, x, d, g = map(int, input().split())
plane[x][y] = 1
temp = [d] #(이전 세대 숫자 표현 넣을 거임)
q = [d] #초기 방향
for _ in range(g + 1): #0세대~>g세대까지 만들기
for k in q:
x += dx[k]
y += dy[k]
plane[x][y] = 1
#이전 세대의 뒤에서부터 꺼내면서 +1 해주기
q = [(i + 1) % 4 for i in temp]
q.reverse()
temp += q
#사각형 갯수 구하기
cnt = 0
for i in range(100): #100*100 돌며 단순 탐색
for j in range(100):
#인접한 4칸의 정사각형이 모두 드래곤에 속함
if plane[i][j] and plane[i][j + 1] and plane[i + 1][j] and plane[i + 1][j + 1]:
cnt += 1 #갯수 증가
print(cnt)
'알고리즘 스터디' 카테고리의 다른 글
[백준] 1520번 : 내리막길 - Python(파이썬) (0) | 2021.08.03 |
---|---|
[백준] 4179번 : 불! - Python(파이썬) (0) | 2021.07.27 |
[백준] 1967번 : 트리의 지름 - Python(파이썬) (0) | 2021.07.13 |
[백준] 1005번 : ACM Craft - Python(파이썬) (0) | 2021.07.13 |
[백준] 2096번 : 내려가기 - Python(파이썬) (0) | 2021.07.06 |
Comments