알고리즘/백준
[백준/Swift] 1919번: 애너그램 만들기
녕이
2022. 12. 13. 18:20
728x90
https://www.acmicpc.net/problem/1919
1919번: 애너그램 만들기
두 영어 단어가 철자의 순서를 뒤바꾸어 같아질 수 있을 때, 그러한 두 단어를 서로 애너그램 관계에 있다고 한다. 예를 들면 occurs 라는 영어 단어와 succor 는 서로 애너그램 관계에 있는데, occurs
www.acmicpc.net
문자열에 속한 문자 개수를 카운팅 하고, 두 문자열 사이 차이 값을 answer에 넣어줬다.
처음엔 contains를 사용해서 속해있으면 answer += 1 하고 제거하는 식으로 생각했는데
같은 알파벳이 여러번 들어갈 수 있으므로 이 방법은 안된다...!!
역시 알파벳 배열 사용하는게 편하군~
import Foundation
/*
철자의 순서를 뒤바꾸어 같아질 수 있는 두 단어 == 애너그램 관계
*/
var a = readLine()!
var b = readLine()!
var numberA = Array(repeating: 0, count: 26)
var numberB = Array(repeating: 0, count: 26)
var answer = 0
for aa in a { numberA[Int(UnicodeScalar(String(aa))!.value) - Int(UnicodeScalar("a").value)] += 1 }
for bb in b { numberB[Int(UnicodeScalar(String(bb))!.value) - Int(UnicodeScalar("a").value)] += 1 }
for i in 0..<26 {
answer += abs(numberB[i] - numberA[i])
}
print(answer)
728x90