소스코드
N = int(input())
cookie = []
for _ in range (N):
cookie.append(input())
heart = [0,0]
body = [0,0,-2,-1,-1]
def head(i,j):
if cookie[i][j] =='*' and cookie[i][j-1]=='_':
heart[0] = i+1
heart[1] = j
for i in range(N):
for j in range(N):
if not heart[0]:
head(i,j)
#왼팔
if i == heart[0] and cookie[i][j] =="*" and j < heart[1]:
body[0] += 1
#오른팔
if i == heart[0] and cookie[i][j] =="*" and j > heart[1]:
body[1] += 1
#허리
if j == heart[1] and cookie[i][j] =="*":
body[2] += 1
#왼쪽다리
if j == heart[1]-1 and cookie[i][j] =="*":
body[3] += 1
#오른쪽다리
if j == heart[1]+1 and cookie[i][j] =="*":
body[4] += 1
for i in heart:
print(i+1,end = ' ')
print()
for j in body:
print(j, end = ' ')
알고리즘
머리
머리는 함수로 선언을 하여 처음으로 _*이 나타나는 부분이 머리이기 때문에 머리로 선언을 해주고 다음에는 선언 안되도록 if 문으로 분기했다.
왼팔
왼팔은 심장 기준으로 왼쪽의 쭉 * 이 나타나기 때문에 횟수만큼 더했고
오른팔
오른팔도 마찬가지이다.
허리
허리는 심장기준 아래쪽으로 *이 나오고
왼쪽다리
왼쪽다리는 허리 i-1 에서 아래쪽으로 *
오른쪽다리
허리 i +1 에서 아래쪽으로 * 이다.
어렵지 않은 구현 문제였다.
'Coding test' 카테고리의 다른 글
[백준/11401/파이썬] (0) | 2023.06.03 |
---|---|
[백준/2579/파이썬] 계단오르기 (0) | 2023.06.02 |
[백준/14888/파이썬] 연산자 끼워넣기 (0) | 2023.05.14 |
[백준/12845/파이썬] 모두의 마블 (0) | 2023.02.28 |
[백준/11047/파이썬] 동전 (0) | 2023.02.28 |