티스토리 뷰
📚 문제
입력
출력
예제 입력 1
3 4
c..c
..c.
....
예제 출력 1
0 1 2 0
-1 -1 0 1
-1 -1 -1 -1
예제 입력 2
6 8
.c......
........
.ccc..c.
....c...
..c.cc..
....c...
예제 출력 2
-1 0 1 2 3 4 5 6
-1 -1 -1 -1 -1 -1 -1 -1
-1 0 0 0 1 2 0 1
-1 -1 -1 -1 0 1 2 3
-1 -1 0 1 0 0 1 2
-1 -1 -1 -1 0 1 2 3
🧑🏻💻 풀이 과정
c
의 등장여부를 판단할 변수cloud
와 구름의 이동 거리를 계산하기 위한 변수move_cnt
를 각각 선언하자.- 입력받은
arr
에서 한 단어씩 꺼내와서 각 조건으로 분기하자.- 문자가
c
면0 append
및 이동거리를 1로 초기화하자. - 앞에
c
가 있었고 '.'이면,move_cnt append
및next
를 1 증가시키자. c
가 등장한적이 없다면,-1 append
- 문자가
def weather_caster():
arr = list(input())
# `c`의 등장여부를 판단할 변수
cloud = False
# 구름 이동 거리
move_cnt = 0
# 결과 값
ans = []
for s in arr:
# 'c'면 0 append 및 이동거리를 1로 초기화
if s == 'c':
ans.append(0)
move_cnt = 1
cloud = True
elif cloud and s == '.':
# 앞에 'c'가 있었고, '.'이면 이동 거리 append 및 next 1 증가
ans.append(move_cnt)
move_cnt += 1
else:
# 'c'가 등장한적이 없다면, -1 append
ans.append(-1)
# 결과값을 join해서 반환
return " ".join(map(str, ans))
h, w = map(int, input().split())
for _ in range(h):
print(weather_caster())
'알고리즘' 카테고리의 다른 글
[algorithm] 백준 11047 - 동전 0 (c++) (0) | 2022.07.27 |
---|---|
[algorithm] 백준 1343 - 폴리오미노 (파이썬) (0) | 2022.07.26 |
[algorithm] 백준 24480 - 알고리즘 수업 - 깊이 우선 탐색 2 (파이썬) (0) | 2022.07.20 |
[algorithm] 백준 23351 - 물 주기 (파이썬) (0) | 2022.07.19 |
[algorithm] 백준 12845 - 모두의 마블 (파이썬) (0) | 2022.07.18 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 정렬
- 스프링 부트
- 인프런
- 북클럽
- 코틀린
- 김영한
- 파이썬
- 노마드
- 스프링
- spring boot
- 리팩토링
- Algorithm
- 문자열
- 백준
- 코테
- 노마드코더
- 데이터베이스
- 자료구조
- leetcode
- 알고리즘
- Refactoring
- webflux
- mysql 8.0
- 릿코드
- kotlin
- Real MySQL
- MySQL
- Spring
- 그리디
- 구현
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함