문자열 쉬프트
어떠한 문자열을 좌 또는 우측으로 쉬프트(이동)하는 코드가 있다, 잘안쓰지만 for문과 String을 이해하기 좋은 문제이다.
한칸만 움직이기
코드는 간단하다, 문자열의 길이를 기준으로 -1로 옮겨준다음, 옮김으로서 없어진 첫번째 문자를 맨 뒤에 더해준것이다.
ex) String_A="ABCDE"라면, "BCDE" + "A" 형태로 해준 것이다.
//한칸 우측이동
public static String shift(String s) {
return s.charAt(s.length()-1)+s.substring(0, s.length()-1);
}
응용문제(쉬프트를 연속해서 한바퀴 돌기)
코드 자체는 아주 간단하다, 위에서 작성한 함수 shift를 문자열의 길이만큼 for문으로 반복 실행하는 것이다.
//한바퀴 돌기
public static void main (String[] args) throws java.lang.Exception {
String input = "Stackoverflow";
for(int i = 0; i <= input.length(); i++){
System.out.println(input);
input = shift(input);
}
}
#실행결과
Stackoverflow
wStackoverflo
owStackoverfl
lowStackoverf
flowStackover
rflowStackove
erflowStackov
verflowStacko
overflowStack
koverflowStac
ckoverflowSta
ackoverflowSt
tackoverflowS
Stackoverflow
이를 응용하면, 아래 문제도 풀 수 있다. (문자열 2개를 비교하여 쉬프트한 값인지 검증하는 문제)
끝.
728x90
반응형
'프로그래밍 > Java' 카테고리의 다른 글
[Java / 자바의 정석 / Java 기초] Stream 사용하기 (0) | 2024.01.18 |
---|---|
[Java / Java의 정석 / 자바 기초] 문자열을 쉬프트 하기(+쉬프트한 문자열 비교하기) (1) | 2024.01.09 |
[Java / 자바 기초 / 자바의 정석] -와 +가 쌍으로 이루어진 값의 최대값 출력 (1) | 2024.01.05 |
[Java/자바/자바의 정석] 정규표현식을 활용한 비밀번호 허용 여부 체크하는 법 (1) | 2023.12.30 |
[내가 이해하기 위한 용어정리] Restfull API란? (1) | 2023.12.26 |