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
- dfs
- LLM
- 가상환경
- 연구
- outer join
- 파이썬
- paper review
- 분산
- 머신러닝
- 알고리즘
- ABAE
- 그래프
- ChatGPT
- SQL 첫걸음
- 논문리뷰
- transformer
- leetcode
- 백준
- NLP
- join
- 코딩테스트
- gpt1
- GPT
- Aspect
- 프로그래머스
- deepseek
- 자연어처리
- SQL
- MySQL
- Bert
Archives
- Today
- Total
huginn muninn
[백준] 1388 바닥 장식 - 파이썬 본문
1388번: 바닥 장식
형택이는 건축가이다. 지금 막 형택이는 형택이의 남자 친구 기훈이의 집을 막 완성시켰다. 형택이는 기훈이 방의 바닥 장식을 디자인했고, 이제 몇 개의 나무 판자가 필요한지 궁금해졌다. 나
www.acmicpc.net
이번에도 그래프 문제,
저번에 풀었던 유기농 배추하고 매우 비슷한데, 오히려 더 쉬워서 빨리 풀었다.
6 9
-||--||--
--||--||-
|--||--||
||--||--|
-||--||--
--||--||-
세로, 가로 길이를 입력하고 바닥에 타일을 설치하는 건데
- 모양이 연속으로 있으면 하나의 타일로 생각하고, | 모양이 연속으로 있으면 하나의 타일로 생각한다.
그래서 이 문제는 - 이 모양은 좌우만 확인하고, | 모양은 상하만 확인하면 되어서 더 쉽다.
N,M=map(int,input().split()) #세로, 가로
floor=[] #바닥 그래프
count=0
def dfs(x,y):
xy=[-1,1]
#좌우로만 확인하면 됨
if floor[x][y]=='-':
#확인했다는 표시
floor[x][y]=0
for i in xy:
dy=y+i
if (0<=dy<M) and floor[x][dy]=='-':
dfs(x,dy)
#상하로만 확인하면 됨.
if floor[x][y]=='|':
floor[x][y]=0
for j in xy:
dx=x+j
if (0<=dx<N) and floor[dx][y]=='|':
dfs(dx,y)
#타일 입력
for _ in range(N):
floor.append(list(input()))
#타일 개수 확인
for i in range(N):
for j in range(M):
if floor[i][j]=='-' or floor[i][j]=='|':
dfs(i,j)
count+=1
print(count)
'코딩테스트' 카테고리의 다른 글
| [프로그래머스] 타겟 넘버 파이썬 (0) | 2024.03.18 |
|---|---|
| [프로그래머스] 옹알이1 파이썬 (1) | 2023.10.09 |
| [백준] 11724 파이썬 - 연결 요소의 개수 (0) | 2023.08.03 |
| [백준] 2606 파이썬 - 바이러스 (0) | 2023.08.03 |
| [백준] 1012 유기농 배추 - 파이썬 (0) | 2023.07.13 |