나 개발자 진짜 되냐?

바킹독 0x03 문제8 - 애너그램 만들기 / 백준 1919번 본문

C++을 시작해봐요!/알고리즘을 공부해봐요!

바킹독 0x03 문제8 - 애너그램 만들기 / 백준 1919번

Snow Rabbit 2025. 9. 29. 17:50

분명 바로 전에.....

애너그램이라는 친구를 들은 거 같은데 말이죠

 

오늘은 진짜 애너그램을 만드는 식을 써야 하는군요

그때랑 그냥 똑같이 하면 안 되나??

싶었는데 아니었습니다.

 

함께 보시죠


 

왜냐면 이번엔 제거해야 하는 최소 개수의 문자 수였다.

즉 맞다 아니다가 아니었다.

그러면 진짜 문자열이 두 개어야 하고

두 개를 비교했을 때 필요 없는 문자를 카운트해야 한다는 뜻이 되겠다.

 

그러면..

 

먼저 배열 두개 선언하고,

string으로 받아서

배열 두개 값이 같으면.. 더해줘서

길이에서 빼면 되지 않을까? 했다.

틀려버린 식..

 

하지만 실패했다.

 

매우 큰 오류가 있었다.

배열 두 개가 값이 같으면..인데

 

값이 둘 다 없을 때, 예를 들면! 문자열은 abc인데 z가 나온다.

이러면 사실 0도 같다고 카운트가 되어버려서

숫자가 이상해진다.

 

그래서 이건 값을 빼주는 방향으로 진행해줘야 한다.

 

 

다만 중요한 점은

z 단어가

a에는 3개

b에는 1개

하면 3-1 해서 2지만 반대로

a에서는 1

b에서는 3

이라면

1-3 = -2가 나온다.

그렇기 때문에 절댓값을 표현하는 함수 abs 친구를 꼭 써줘야 한다!

 

그다음에 누적 합하면 된다!!

 

이렇게 배열도 끝났다.

어렵다.

몇 문제 안되어서 금방 끝난 감이 있다. 그다음은 더욱 이상한 문제들이 투성이다.

내가 잘 헤쳐나갔으면 좋겠다 ㅎ

이상!