Notice
Recent Posts
Recent Comments
Link
꾸준하게 거북이처럼
Anagram 문제 리스트만 사용해서 풀기 본문
C++ 처럼! 오직 리스트만 사용해서 문제를 풀어보자.
str1 = list(input())
str2 = list(input())
for i in range(len(str2)):
if str2[i] in str1:
str1.pop(str1.index(str2[i]))
if len(str1) > 0:
print("NO")
else:
print("YES")
# 나의 풀이: 리스트를 이용해서 해당 알파벳이 존재하면 pop을 통해 한 문자라도 str1에 남으면 NO
a = input()
b = input()
#알파벳 개수 26개 대문자 소문자 모두 52개
str1[0] = [0] * 52
str2[0] = [0] * 52
# 대문자는 index가 0 ~ 25, 소문자는 26 ~ 51로 만들고자함.
for x in a:
if x.isupper():
str1[ord(x) - 65] += 1
else:
str1[ord(x) - 71] += 1
for x in b:
if x.isupper():
str2[ord(x) - 65] += 1
else:
str2[ord(x) - 71] += 1
for i in range(52):
if str1[i] != str2[i]:
print("NO")
break
else:
print("YES")
# 정답풀이 : 정말 c++ 처럼 풀어보자.
# 같은지 비교할 때 if str1 == str2 를 사용해도 되지만 최대한 c++ 처럼 하기로 했으니
# for문을 이용해서 비교한다.
핵심은 ord를 사용했다는 것! 참고로 ord('a') == 97, ord('A') == 65 이다.
'Algorithm 문제 & 공부' 카테고리의 다른 글
완전탐색기초 : 재귀와 스택 (0) | 2022.06.17 |
---|---|
이분탐색(이진탐색) - 탐색 시간복잡도 줄이기 (0) | 2022.06.12 |
해쉬 - Anagram 개선코드 (0) | 2022.06.11 |
해쉬 - Anagram (0) | 2022.06.11 |
해쉬 : 단어찾기 (0) | 2022.06.11 |
Comments