본문 바로가기
Algorithm and PS/백준(Kotlin)

백준 - 1919 애너그램 만들기 (코틀린)

by ESHC 2021. 5. 22.

[문제]

https://www.acmicpc.net/problem/1919

 

1919번: 애너그램 만들기

두 영어 단어가 철자의 순서를 뒤바꾸어 같아질 수 있을 때, 그러한 두 단어를 서로 애너그램 관계에 있다고 한다. 예를 들면 occurs 라는 영어 단어와 succor 는 서로 애너그램 관계에 있는데, occurs

www.acmicpc.net

[코드]

import java.io.*
import java.lang.StringBuilder
import java.util.*

fun main() {
    val br = BufferedReader(InputStreamReader(System.`in`))
    val st1 = br.readLine()
    val st2 = br.readLine()
    val arr = Array('z'-'a'+1) {0}
    var result = 0
    for(s in st1){
       arr[(s-'a')] += 1
    }
    for(s in st2){
        arr[(s-'a')] -= 1
    }
    for(i in arr){
        result += if(i<0) (-1)*i else i
    }
    print(result)
}

[풀이]

다른 배열문제와 비슷하게 풀이가능하다.

두 문자열을 a부터 z까지 알파벳 순서대로 인덱스에 맞게 한 배열에 갯수를 저장하는데

한 문자열은 양수로 다른 문자열은 음수로 저장하는 식으로 차이를 구한 뒤

절댓값으로 합해서 답을 구한다.

Github : https://github.com/eshc123/2021AlgorithmStudy/blob/main/src/main/PS/baekjoon/1919.kt

댓글