티스토리 뷰
https://www.acmicpc.net/problem/12904
12904번: A와 B
수빈이는 A와 B로만 이루어진 영어 단어가 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수
www.acmicpc.net
처음 풀이할 땐 S에서 T의 길이까지 만들 수 있는 모든 문자열의 경우를 구해보았습니다.
나름 Set을 사용해서 중복체크도 했지만.. 메모리 초과
새로운 풀이에서는 반대로 접근하여 T에서 S를 만들 수 있는지 체크하였습니다.
문제에 주어진 S -> T 연산을 거꾸로 적용합니다.
- 문자열의 뒤에 A를 추가한다 : 문자열 뒤에 A를 제거한다.
- 문자열을 뒤집고 뒤에 B를 추가한다 : B를 제거하고 문자열을 뒤집는다
T의 길이가 S의 길이와 같아질 때까지 위 연산을 적용한 결과가 S와 같다면 S -> T가 가능한 경우입니다.
C++ 소스 코드
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
string s,t;
cin >> s >> t;
while(t.length()> s.length()){
if (t.back()=='A') t.pop_back();
else {
t.pop_back();
reverse(t.begin(),t.end());
}
}
if (s == t) cout << 1 << '\n';
else cout << 0 << '\n';
return 0;
}
'Algorithm > 알고리즘 문제풀이' 카테고리의 다른 글
BOJ) 2210 - 숫자판 점프 (0) | 2020.06.27 |
---|---|
BOJ) 3568 - iSharp (0) | 2020.06.26 |
BOJ) 10986 - 나머지 합 (0) | 2020.06.23 |
BOJ) 12970 - AB (0) | 2020.06.22 |
프로그래머스) Lv4 - 지형 이동 (0) | 2020.06.19 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- disposeBag
- GraphDB
- infallible
- coreml
- ARKit
- C++
- 백준
- rxswift
- bounds
- 코코아팟
- Swift
- 백준온라인저지
- 프로그래머스
- Kotlin
- 카카오인턴십
- Lottie
- boj
- 안드로이드
- Neo4j
- Reactivex
- mergesort
- 알고리즘
- blendshape
- rxswift6
- cocoapods
- blendshapes
- DispatchQueue
- ios
- SWEA
- SwiftUI
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
글 보관함