Link : judge.koreatech.ac.kr/problem.php?id=1119
1. 문제
- 입사 10년차를 맞아 열심히 모은 돈으로 드디어 꿈에 그리던 BMW 자동차를 구입한 광성이.
그 중에서도 가장 마음에 드는 기능은 바로 핸들 제스쳐 컨트롤!
문자열이 원 형태로 배열되어 화면에 보이고, 왼쪽으로 손을 휙 움직이면 왼쪽으로 한 칸 쉬프트가 되고, 오른쪽으로 손을 휙 움직이면 오른쪽으로 한 칸 쉬프트가 된다.
예를 들어 문자열이 ABCDE 라면, 왼쪽으로 휙 움직일 경우 BCDEA, 오른쪽으로 휙 움직일 경우 EABCD 가 화면에 보이게 된다.
신기한 광성이는 이 기능을 직접 구현해보기로 한다.
입력 문자열과 방향(L: 왼쪽, R: 오른쪽)의 시퀀스가 주어졌을 때 최종적으로 화면에 보이는 문자열을 출력하는 프로그램을 작성하시오.
2. 문제의 조건
- 1 <= T <= 100 (테스트케이스)
- 1 <= S <= 100,000 (문자열길이)
- 1 <= D <= 100,000 (명령 개수)
더보기
3. 문제 접근
- 시간 복잡도
1초 시간 내, 테케 100개에 명령개수가 10만개이므로 O(N^1.14) 시간 이내에 해결해야합니다.
- 아이디어
abcde LRL 기준으로
(L)
bcdea
a b c d e
abcde
a b c d e
abcde
a b c d e
이 기준으로 작성하시면 됩니다.
4. 풀이 방법
- pos를 0으로 지정
- 모든 명령줄을 반복하면서
L이면 pos를 1증가
R이면 pos를 1감소 합니다. - 마지막으로 pos부터 문자열의 길이까지 Mod 연산자를 이용하여 출력합니다
※ pos가 3부터 시작 할 경우 cdeab
34501
순으로 출력이 되어야하기 때문에 Mod연산자를 이용하여 출력해야합니다.
5. 소스코드
cjw.git@gmail.com
'알고리즘 > koreatech' 카테고리의 다른 글
1172: 킹콩 영준이와 종욱이의 대도시 파괴 프로젝트 (0) | 2020.12.16 |
---|---|
1125: 좌우로 밀착 I (0) | 2020.12.16 |
1116: 짝궁 문자열 (0) | 2020.12.15 |
1110: 징검다리 (0) | 2020.12.15 |
1109: 자라나라 나무나무 (0) | 2020.12.14 |
댓글