백준: 12904번 - A와 B swift

pengsang·2023년 8월 11일

문제풀이

목록 보기
8/11
post-thumbnail

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

문제예시

1. 입력

B
ABBA

2. 출력

1

1. 입력

AB
ABB

2. 출력

0

규칙

  1. A를 맨 뒷자리에 추가한다
  2. 기존 문자열을 거꾸로 뒤집고 B를 추가한다

풀이

규칙에서 제시된 내용을 반대로 시행한다
문자열의 길이가 같아질때까지 아래 작업을 반복한다

    1. 문자열의 마지막 문자가 "A"인 경우 -> A를 제거한다
    1. 문자열의 마지막 문자가 "B"인 경우 -> B를 제거하고 B가 제거된 문자를 뒤집는다

문자열의 길이가 같아지면 두 문자열이 같은지 비교한 후 결과를 출력한다

예시

문제 예시 1번을 참조한 예시

1. 입력

B
ABBA

2. 출력

1

  1. ABBA -> 마지막 문자는 A -> A 제거
  2. ABB -> 마지막 문자는 B -> B 제거 후 문자열 뒤집기
  3. BA -> 마지막 문자가 A -> A 제거
  4. B == B 이므로 결과로 1을 출력

코드

let a = readLine()!
var b = readLine()!.map{String($0)}

while a.count != b.count {
   if b[b.count - 1] == "A" {
       b.removeLast()
   }else {
       b.removeLast()
       b = b.reversed()
   }
}

print(b.joined() == a ? 1 : 0)
profile
내 꿈은 고등어

0개의 댓글