inblog logo
|
stupefyee
    알고리즘문제풀기

    [JAVA 문제 풀이] 88. 문자열 밀기

    프로그래머스 (120921)
    Stupefyee's avatar
    Stupefyee
    Feb 17, 2025
    [JAVA 문제 풀이] 88. 문자열 밀기
    Contents
    내가 작성한 코드
    school.programmers.co.kr
    https://school.programmers.co.kr/learn/courses/30/lessons/120921?language=java#
    notion image

    내가 작성한 코드

    💡
    class Solution { public int solution(String A, String B) { int answer = 0; if (A.equals(B)) return 0; // 이미 같은 경우 String temp = A; for (int i = 1; i < A.length(); i++) { // 마지막 글자 + 나머지 글자 >> 오른쪽으로 한칸 움직이기 temp = temp.charAt(temp.length() - 1) + temp.substring(0, temp.length() - 1); if (temp.equals(B)) { answer = i; // 오른쪽 이동 횟수 저장 break; } } temp = A; for (int i = 1; i < A.length(); i++) { // 나머지 글자 + 첫 글자 >> 왼쪽으로 한칸 움직이기 temp = temp.substring(1, temp.length()) + temp.charAt(0); if (temp.equals(B)) return Math.min(answer, i); // 오른쪽 이동과 횟수 비교후 작은 값 반환 } return -1; // 만들 수 없는 경우 } }
    1. 해당 코드로 진행 하면 테스트케이스 7번에서 오류 발생
      1. 오류 확인을 위해 변경한 코드 (이동 수 최소값 비교를 뺌)
        1. class Solution { public int solution(String A, String B) { if (A.equals(B)) return 0; String temp = A; for (int i = 1; i < A.length(); i++) { temp = temp.charAt(temp.length() - 1) + temp.substring(0, temp.length() - 1); if (temp.equals(B)) return i; } return -1; } }
      2. 정상 작동 확인
    1. 발생원인: 테스트케이스 7번에서 이동 수에 대한 최소값을 받지 않고 있음
      1. notion image
    Share article
    Contents
    내가 작성한 코드

    stupefyee

    RSS·Powered by Inblog