본문 바로가기

Python(알고리즘,문제풀이)/BOJ(Bronze II)

백준 / 1919번 / 애너그램 만들기 / Python / 구현,문자열, 얕은복사

728x90

📚문제

출처 : 백준 1919번(https://www.acmicpc.net/problem/1919)


📝풀이

# 1919번 에너그램 만들기(BronzeII)
from collections import deque
word1 = deque(input())
word2 = deque(input())
w1_copy = deque(word1)
w2_copy = deque(word2)

cnt = 0

for i in word1:
    if i not in w2_copy:
        cnt += 1
    else:
        w2_copy.remove(i)

for j in word2:
    if j not in w1_copy:
        cnt += 1
    else:
        w1_copy.remove(j)
print(cnt)

이 풀이에서 가장 유의해야하는 부분

 

# .copy() / copy.deepcopy()도 가능
# copy.deepcopy()는 이중 배열까지 복사
# .copy()는 불가능
w1_copy = deque(word1) 
w2_copy = deque(word2)

두 단어의 deque에 대한 복사본을 생성할 때

deque()를 다시 한 번 취해주어야 한다

 

예제도 넣어보고 하다가 계속 틀려서

ChatGTP를 통해서 자문을 구해보니 다음과 같이 답변했다

 

'deque'  객체 생성 
다른 변수에 할당하면 해당 변수는 같은 deque 객체를 참조한다

 

쉽게 말하면 

하나의 변수 변경 시 다른 변수도 변경된다

(=얕은 복사가 된것)

728x90