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

백준 - 11328 Strfry (코틀린)

by ESHC 2021. 5. 15.

[문제]

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

 

11328번: Strfry

C 언어 프로그래밍에서 문자열(string)은 native한 자료형이 아니다. 사실, 문자열은 그저, 문자열의 끝을 표시하기 위한 말단의 NULL이 사용된, 문자들로 이루어진 문자열일 뿐이다. 하지만 프로그래

www.acmicpc.net

[코드]

import java.io.*
import java.util.*

fun main() {
    val br = BufferedReader(InputStreamReader(System.`in`))
    val bw = BufferedWriter(OutputStreamWriter(System.out))
    val n = StringTokenizer(br.readLine()).nextToken().toInt()
    for(i in 0 until n) {
        val st1 = StringTokenizer(br.readLine())
        val a =  st1.nextToken()
        val b =  st1.nextToken()
        bw.write(strfry(a,b)+"\n")
    }


    bw.flush()
    bw.close()
}

fun strfry(a : String, b : String) : String {
    val arr1 = Array('z'-'a'+1){0}
    val arr2 = Array('z'-'a'+1){0}
    for(i in a){
        arr1[i-'a'] += 1
    }
    for(i in b){
        arr2[i-'a'] += 1
    }
    for(i in 0 until ('z'-'a'+1)){
        if(arr1[i] != arr2[i]) return "Impossible"
    }
    return "Possible"
}

[풀이]

두 문자열을 비교하여 한 문자열의 문자들로 다른 한 문자열을 만들 수 있는지 판단하는 문제이다.

간단한 방법은 각 문자열의 문자들을 각 알파벳 배열에 담아 두 알파벳 배열을 순회하여

같은지 아닌지를 통해 답을 구할 수 있다.

순회하지 않더라도 contentEquals 함수를 이용해서도 두 배열이 같은지 구할 수 있다.

 

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

댓글