Notice
Recent Posts
Recent Comments
Tags
- 전화번호 목록 python
- 바닥장식 파이썬
- 코딩테스트
- 스프링 초보
- spring 기초
- 코딩테스트 연습
- 코테 연습
- 프로그래머스 알고리즘 고득점 kit
- 프로그래머스 레벨1
- 프로그래머스 전화번호 목록 python
- 장고
- 프로그래머스 레벨2
- 코테
- 장고 기초
- 백준
- 스프링 기초
- dp 알고리즘
- Django
- Django 기초
- 백준 dp
- 백준 바닥장식 python
- 프로그래머스 level1
- programmers
- 알고리즘 문제
- 프로그래머스 고득점 kit
- 백준 다이나믹프로그래밍
- Spring 초보
- 프로그래머스
- 프로그래머스 전화번호 목록 파이썬
- 알고리즘 공부
Archives
- Today
- Total
일일구름 IT
[백준 1388] 바닥 장식 (Python) 본문
문제
아 일단 코딩을 너무 오랜만에 해서 문법을 다 까먹었다...
이제 슬슬 취업준비 시작해야 하니까 다시 코테 준비를 좀 빡세게 해야겠다
처음에는 이 문제를 보고 BFS 탐색 방식을 사용해야하나 ? 라고 생각했다. 방향이 주어지지 않았다면 BFS 방법을 사용하는 것이 맞았을 것이다. 그런데 여기서 '-'는 가로 같은 행, '|'는 같은 열에 인접해 있다면 같은 나무 판자라는 방향을 지정해주었다. 그래서 굳이 BFS을 사용하지 않아도 되겠다는 생각이 들었다.
그리고 인접한 '-' 또는 '|'의 시작이나 중간부분이 아닌 마지막 판자의 개수만 세면 필요한 나무 만자의 개수를 구할 수 있다.
1. 모든 판자 순서대로 for문을 이용해 탐색
2. 오른쪽('-') 또는 아래쪽 ('|')에 같은 판자가 있는지 확인
3. 없으면 마지막으로 인접한 판자이니 개수 +1
4. 있으면 다음 판자 탐색
5. 만약 해당 판자가 가장 오른쪽 또는 가장 아래 판자면 마지막으로 인접한 판자이니 개수 +1
내 코드
n, m = map(int, input().split())
floor = []
for i in range(n):
floor.append(list(input()))
def solution(n, m , floor) :
cnt = 0
for x in range(n):
for y in range(m):
if floor[x][y] == '-':
if (y+1 < m and floor[x][y+1] != '-'):
cnt += 1
elif (y == m-1):
cnt += 1
if floor[x][y] == '|':
if (x+1 < n and floor[x+1][y] != '|'):
cnt += 1
elif (x == n-1):
cnt += 1
return cnt
print(solution(n, m , floor))
오랜만에 코딩을 하니 입력받는 코드를 어떻게 작성해야 하는지 조차 기억이 안났다.. 심각
휴우,, 앞날이 불안하고 걱정이 많이 된다.. 그치만 일단 지금 내가 할 수 있는 것을 최선을 다해서 해보자
https://www.acmicpc.net/problem/1388
'백준 > 그래프 탐색' 카테고리의 다른 글
[백준 18352] 특정 거리의 도시 찾기 (Python) (0) | 2023.06.08 |
---|---|
[백준 11581] 구호물자 (Python) (0) | 2023.05.30 |
[백준 1260번] [Python] DFS와 BFS (그래프 탐색) (0) | 2023.02.15 |