티스토리 뷰

📚 문제

입력

출력

예제 입력 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에서 한 단어씩 꺼내와서 각 조건으로 분기하자.
    • 문자가 c0 append 및 이동거리를 1로 초기화하자.
    • 앞에 c가 있었고 '.'이면, move_cnt appendnext를 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())
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함