Kim Seon Deok

[백준 14670] 병약한 영정 본문

python/Algorithm

[백준 14670] 병약한 영정

seondeok 2022. 1. 19. 01:10

 

 

https://www.acmicpc.net/problem/14670

 

14670번: 병약한 영정

프로그램의 입력은 표준 입력으로 받는다. 입력의 첫 줄에는 약의 종류의 개수 N이 입력된다. (1 ≤ N ≤ 100) 그 다음 N개의 줄에는 각각 약의 효능과 약의 이름이 숫자로 주어진다. (0 ≤ Me, Mn ≤ 10

www.acmicpc.net

-약의 종류의 개수 N을 입력받는다.

-for을 통해 N번만큼 a,b를 문자열로 구성된 리스트 형태로 입력받아, a는 effect(약의 효능)리스트로, b는 name()리스트에 append.

영정이가 겪는 증상의 수 R을 입력받는다.

-for문을 통해 R번만큼 c를 문자열로 구성된 리스트 형태로 입력받아 , s 리스트에 append 하여 2차원 배열을 만든다.

-for문을 통해 s[0]~ s[R-1] 까지 증상의 이름이 effect에 존재하는 원소이면 cnt를 0만큼 증가, 존재하지 않은 원소이면 cnt를 1만큼 증가시켜, 길이가 R인 새로운 2차원 배열 ss를 생성

-(증상을 모두 치료할 수 있을 때) ss[i]가 0이므로 증상의 이름과 효능을 일대일 대응하고, 또 그에 대응되는 약의 이름을 찾아야 한다.

    리스트를 인자로 받는 matching함수를 생성

    새로운 리스트 p 를 생성

    반복문을 통해 인자로 받은 리스트의 원소가 effect 리스트에 있다면 그와 매칭되는 name리스트의 원소를 p에            append 하여 print(' '.join(p)) 형태로 출력

-(증상을 치료할 수 있는 경우가 하나라도 존재할 때)

    ss[i]가 0이 아니므로 print('YOU DIED')출력

 

 

 

 

N = int(input()) # 약의 종류의 개수
 
effect = []  # 효능을 저장하는 리스트
name = []  # 약의 이름을 저장하는 리스트
for i in range(N):
    a ,b = list(map(str,input().split()))
    effect.append(a)
    name.append(b)
 
s = []
R = int(input())  #영정이가 겪는증상의 수
for i in range(R):
    c = list(map(str,input().split()))  # 첫번째 인덱스: 증상개수, 그 이후 인덱스:  증상이름
    s.append(c)
 
ss = []  # cnt를 인자로 하는 리스트
for i in range(0,R):
    cnt = 0
    for j in range(1,len(s[i])):
        if s[i][j] in effect:
            cnt +=0
        else:
            cnt += 1
    ss.append(cnt)
 
 
def matching(l):  # 증상을 모두 치료할 수 있을 때 name과 매칭시키는 ㅏㅁ수
    p = []
    for i in range(1,len(l)):
        for k in range(0,N):
            if l[i] == effect[k]:
                p.append(name[k])
    print(' '.join(p))  # 출력 형태
 
for i in range(0,R):
    if ss[i] ==0:  # 증상을 모두 치료할 수 있을 때
        matching(s[i])
    elif ss[i] != 0:  # 치료 불가한 증상이 하나이상 있을 
        print("YOU DIED")

 

 

 

 

 

'python > Algorithm' 카테고리의 다른 글

[백준] 14889 스타트와 링크  (0) 2022.01.26
[백준] 20436 ZOAC 3  (0) 2022.01.22
[백준] 2485 가로수  (0) 2022.01.14
[백준] 2659 십자카드  (0) 2022.01.14
[백준] 1244 스위치 켜고 끄기  (0) 2022.01.14
Comments