오랜만에 해커랭크에서 문제를 풀었다. 고새 파이썬 딕셔너리 사용법이 헷갈려서 삽질을 좀 했다..
삽질했던 부분
1) 딕셔너리는 키:값 형태인데 키에 문자열을 저장했다.. >> note의 문자열이 magazine 배열에 있을경우 무조건 'Yes' return하는 문제 발생
2) 해커랭크는 기본 입력부분은 제공이 되는데 입력부분을 제대로 확인하지 않아 magazine, note가 하나의 string인줄 알고 공백을 토큰으로 슬라이스 하고있었다...^^ 온라인 코테에서 입력부분 제공되는 경우도 있으니 앞으론 입력부도 제대로 확인하도록 하자 나 자신아,,^^
Solution
#!/bin/python3
import math
import os
import random
import re
import sys
# Complete the checkMagazine function below.
def checkMagazine(magazine, note):
dic={}
res=True
for i in range(len(magazine)):
if magazine[i] not in dic:
dic[magazine[i]]=1
else:
dic[magazine[i]]+=1
for i in range(len(note)):
if note[i] in dic.keys():
dic[note[i]]-=1
if dic[note[i]]<0:
print('No')
res=False
break
else:
print('No')
res=False
break
if res==True:
print('Yes')
if __name__ == '__main__':
mn = input().split()
m = int(mn[0])
n = int(mn[1])
magazine = input().rstrip().split()
note = input().rstrip().split()
checkMagazine(magazine, note)
딕셔너리구조를 보여주기 위해 dic/ dic.keys()/ dic.values()를 각각 출력해보았다.
아래처럼 '문자열'(키):값(개수) 가 조회된다
어쨌든 햅삐한 결말...
반응형