풀이
- name과 check 2차원 배열을 만들어 둔 다음
- 반복문을 통해 받아오는 입력 값 중
- 첫 값은 name, 이 후의 값을 확인하여 인덱스 값을 추가한 다음
- 다시 반복문을 순회하며 check에 추가된 인덱스 값에 맞게
- 출력문을 출력하며
- state에 따른 출력문 또한 함께 출력
- 예시에선 N으로 된 나쁜 말을 작성하는 친구가 한 명 뿐이지만
- 숨어있는 입력값으로는 더 많을 것으로 예상되어 아래와 같이 코드를 작성하여 해결
import sys
input = sys.stdin.readline
tc = 1
while True:
n = int(input())
if not n: break
name = [""]*n
check = [[0] for _ in range(n)]
state = True
for i in range(n):
li = list(input().rstrip('\n').split())
name[i] = li[0]
for j in range(1,n):
if li[j] == "N":
if check[i][0] == 0: check[i][0] = j
else: check[i].append(j)
if state: state = False
print("Group %d"%tc)
for i in range(n):
if check[i] != [0]:
for j in check[i]:
devil = name[i-j] if i-j >=0 else name[n+i-j]
print("%s was nasty about %s"%(devil,name[i]))
if state: print("Nobody was nasty")
print()
tc += 1
'알고리즘' 카테고리의 다른 글
[백준, 파이썬, 4583번] 거울상 (1) | 2024.02.14 |
---|---|
[백준, 자바, 1384번] 메시지 (0) | 2024.02.13 |
[백준, 자바, 1380번] 귀걸이 (0) | 2024.02.13 |
[백준, 파이썬, 1380번] 귀걸이 (0) | 2024.02.13 |
[백준, 자바, 2523번] 별찍기 - 13 (0) | 2024.02.13 |