https://www.acmicpc.net/problem/6996
🔎 처음시도
n = int(input())
for _ in range(n):
a, b = input().split()
cnt = 0
for i in a:
if i in b:
cnt += 1
if cnt == len(a) and len(a) == len(b):
print('{} & {} are anagrams.'.format(a,b))
else:
print('{} & {} are NOT anagrams.'.format(a,b))
반례: aaaa aaab.
이유: if i n b 코드에서 변수 a와 변수 b가 가진 a의 개수에 상관없이, 포함되어있는지 아닌지만 판단했기 때문에, 오류 발생.
같은 어미 + 같은 개수를 확인할 방법으로 딕셔너리가 떠올라서 코드를 수정했다.
💻 두번째 시도_ 최종 코드
n = int(input())
ad = {}
bd = {}
for _ in range(n):
a, b = input().split()
flag = True
if len(a) == len(b):
for i in a:
if ad.get(i):
ad[i] += 1
else:
ad[i] = 1
for j in b:
if bd.get(j):
bd[j] += 1
else:
bd[j] = 1
if ad == bd:
print('{} & {} are anagrams.'.format(a,b))
else:
print('{} & {} are NOT anagrams.'.format(a,b))
else:
print('{} & {} are NOT anagrams.'.format(a,b))
한시간 넘게 고민해서 썼는데 알고보니 그냥 정렬하면 8줄도 안되게 끝나는 문제다.
'Koala - 9기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/Python] 5363 요다 (0) | 2023.01.15 |
---|---|
[백준/python] 1350 진짜공간 (0) | 2023.01.15 |
[백준/python] 11179 2진수 뒤집기 (0) | 2023.01.14 |
[백준/Python] #1350 진짜 공간 (0) | 2023.01.14 |
[백준/python] 1350 진짜 공간 (0) | 2023.01.13 |