[프로그래머스] 문자열 밀기 - JAVA

2024. 9. 11. 02:27·알고리즘

[작성일: 2023. 11. 30]

 

 

풀이 1

class Solution {
    public int solution(String A, String B) {
        int answer = 0;
        String C = A;
        for (int i = 0; i < A.length(); i++) {
            if(C.equals(B)) return answer;

            String D = C.substring(C.length() - 1);
            C = D + C.substring(0, C.length() - 1);
            answer++;
        }
        return -1;
    }
}

 

풀이 1은 내가 푼 방법으로 C라는 String 변수를 만들어서 A를 대입한다. 

첫 반복문에서 C와 B가 같다면 문자열을 밀어야 할 필요가 없으므로 0을 리턴한다.

그렇지 않다면 D라는 String 변수를 만들어서 C.substring(C.length() - 1)을 대입한다.

 

substring에 파라미터를 1개만 전달하면 전달된 파라미터 인덱스부터 문자열 끝까지 자른다.

C.length() - 1을 파라미터로 넘겼으므로 C가 abcd일 경우 d를 D에 대입하게 된다.

그 다음 C에는 D와 C.substring(0, C.length() - 1)을 더해서 대입한다.

D는 "d"이고, 0부터 C.length() -1은 abc가 되므로 C에는 dabc가 저장된다. (문자열이 한 개 밀린 셈이다.)

 

문자열을 한 번 밀었으므로 answer를 증가시켜주고, 다시 반복문을 돌게 되는 코드가 된다. 

반복문 안에서 return이 없었으면 문자열을 밀어도 B가 될 수 없었으므로 -1을 리턴한다.

 

저작자표시 비영리 변경금지 (새창열림)
'알고리즘' 카테고리의 다른 글
  • [프로그래머스] 이진수 더하기 - JAVA
  • [프로그래머스] 숨어있는 숫자의 덧셈(2) - JAVA
  • [프로그래머스] 순서쌍의 개수 - JAVA
  • [프로그래머스] 배열의 길이를 2의 거듭제곱으로 만들기 - JAVA
뚜비
뚜비
1년차 백엔드&iOS 개발자의 감자 탈출 블로그 🥔🥔
  • 뚜비
    뚜비의 개발로그
    뚜비
  • 전체
    오늘
    어제
  • 글쓰기     관리
    • Devlog
      • Back-End
        • Java
        • Spring
        • JPA
        • HTTP
        • Security
        • Back-End
        • Front-End
      • 알고리즘
      • iOS
        • Swift
      • Database
      • Tips
        • Git & GitHub
        • A to Z
      • 프로젝트
      • 생각정리
  • 태그

    Swift
    HTTP
    객체
    html
    백준
    Spring Security
    스프링
    프로그래머스
    자바
    알고리즘
    javascript
    변수
    성능최적화
    JPA
    Security
    의존성주입
    Java
    생성자
    spring
    김영한
    자바스크립트
    DB
    최주호
    데이터베이스
    Database
    sql
    jsp
    다형성
    게시판만들기
    MVC
  • hELLO· Designed By정상우.v4.10.0
뚜비
[프로그래머스] 문자열 밀기 - JAVA
상단으로

티스토리툴바