alpyrithm_알파이리즘
[알고리즘][Python] 백준(BOJ) 9536 여우는 어떻게 울지?_파이썬 본문
9536 여우는 어떻게 울지? www.acmicpc.net/problem/9536
문제 풀기 전 공부할 것 : 문자열
풀이 1
<내용>
- 테스트케이스만큼 과정을 반복한다.
- 여기서 잘못되면 33%에서 "틀렸습니다"가 뜬다.
- 녹음된 울음소리를 recode에 리스트로 입력받는다.
- 동물들의 울음소리만 sounds에 저장한다.
- <동물> goes <소리>의 형태이므로 항상 길이가 3이다.
- what does the fox say?는 길이가 3보다 크므로 길이가 3보다 클 때 while문을 빠져나온다.
- 여우를 제외한 동물의 울음소리를 반복문을 이용하여 제거한다.
- 녹음된 울음소리 중 다른 동물의 울음소리와 하나라도 같으면 new에 넣지 않고, 그렇지 않으면 넣는다.
- new를 출력한다.
<코드>
import sys
input = sys.stdin.readline
t = int(input())
for _ in range(t):
recode = list(input().rstrip().split())
sounds = []
while True:
s = list(input().rstrip().split())
if len(s) > 3:
break
sounds.append(s[2])
new = []
for i in recode:
flag = True
for s in sounds:
if i == s:
flag = False
break
if flag:
new.append(i)
print(*new)
풀이 2
<내용>
- 위의 과정과 '여우를 제외한 동물의 울음소리를 반복문을 이용하여 제거한다.' 부분을 제외하고는 같다.
- 동물의 울음소리를 반복문으로 돌면서 녹음된 울음소리 중 동물의 울음소리와 같으면 new에 넣지 않고, 그렇지 않으면 넣는다.
- recode에 new를 저장한다.
- new를 출력한다.
<코드>
import sys
input = sys.stdin.readline
t = int(input())
for _ in range(t):
recode = list(input().rstrip().split())
sounds = []
while True:
s = list(input().rstrip().split())
if len(s) > 3:
break
sounds.append(s[2])
for s in sounds:
new = []
for i in recode:
if i != s:
new.append(i)
recode = new
print(*new)
728x90
반응형
'Algorithm > 백준 알고리즘_Python' 카테고리의 다른 글
[알고리즘][Python] 백준(BOJ) 2966 찍기_파이썬 (0) | 2020.10.11 |
---|---|
[알고리즘][Python] 백준(BOJ) 2608 로마 숫자_파이썬 (0) | 2020.10.10 |
[알고리즘][Python] 백준(BOJ) 2693 N번째 큰 수_파이썬 (0) | 2020.10.08 |
[알고리즘][Python] 백준(BOJ) 7785 회사에 있는 사람_파이썬 (0) | 2020.10.07 |
[알고리즘][Python] 백준(BOJ) 1793 타일링_파이썬 (0) | 2020.10.06 |
Comments