[Lv. 0] 문자열 밀기프로그래머스/Level 02023. 3. 21. 14:06
Table of Contents
문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/120921
난이도 : Level.0
언어 : Kotlin
문제 설명 :
- 문자열 "hello"에서 각 문자를 오른쪽으로 한 칸씩 밀고 마지막 문자는 맨 앞으로 이동시키면 "ohell"이 됩니다. 이것을 문자열을 민다고 정의한다면 문자열 A와 B가 매개변수로 주어질 때, A를 밀어서 B가 될 수 있다면 밀어야 하는 최소 횟수를 return하고 밀어서 B가 될 수 없으면 -1을 return 하도록 solution 함수를 완성해보세요.
제한 사항 :
- 0 < A의 길이 = B의 길이 < 100
- A, B는 알파벳 소문자로 이루어져 있습니다.
입출력 예 :
A | B | result |
"hello" | "ohell" | 1 |
"apple" | "elppa" | -1 |
"atat" | "tata" | 1 |
"abc" | "abc" | 0 |
풀이 :
class Solution {
fun solution(A: String, B: String): Int {
var answer: Int = 0
var listA = A.toMutableList()
var listB = B.toMutableList()
for (i in A.indices) {
if (listA == listB) return i
listA.add(0, listA[listA.lastIndex])
listA.removeAt(listA.lastIndex)
}
return -1
}
}
받은 A, B 매개변수를 리스트로 만들어 add 를 통해 밀고 마지막 인덱스를 삭제시킴으로써 모양을 완성시킨다.
이를 문자열의 길이 만큼 반복한다면 같은 형태가 되었을 시점의 i를 반환하고, 안된다면 -1을 반환시킨다.
'프로그래머스 > Level 0' 카테고리의 다른 글
[Lv. 0] 7의 개수 (0) | 2023.03.21 |
---|---|
[Lv. 0] 잘라서 배열로 저장하기 (0) | 2023.03.21 |
[Lv. 0] 종이 자르기 (0) | 2023.03.21 |
[Lv. 0] 옹알이 (1) (0) | 2023.03.21 |
[Lv. 0] 다음에 올 숫자 (0) | 2023.03.21 |
@스몰스테핑 :: 작은 발걸음
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!