고구마와 감자
Amor DevFati(아모르 개발파티)
고구마와 감자
전체 방문자
오늘
어제
  • 분류 전체보기
    • 스프링
    • 알고리즘
      • 백준
      • 프로그래머스
      • 인프런_자바코테강의
      • 리트코드
      • 해커랭크
      • 코드업
      • 이것저것
    • 자바
    • GIT
    • 파이썬
    • 개발이론
    • JPA
    • 김영한 강의
      • 모든 개발자를 위한 HTTP 웹 기본 지식
      • 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
      • 스프링 핵심 원리 - 기본편
    • 일기 및 아무말 적기

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 11023
  • 더하기 3
  • 2921
  • 백준
  • 2857
  • 전투 드로이드 가격
  • 1598
  • 꼬리를 무는 숫자 나열
  • 고려대학교에는 공식 와인이 있다
  • 11966
  • 조교는 새디스트야!!
  • 10409
  • 16673
  • 5988
  • 홀수일까 짝수일까
  • Mini Fantasy War
  • 14656
  • 2의 제곱인가
  • 5361
  • 남욱이의 닭장

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
고구마와 감자

Amor DevFati(아모르 개발파티)

인프런 11. 문자열 압축(JAVA)
알고리즘/인프런_자바코테강의

인프런 11. 문자열 압축(JAVA)

2022. 3. 27. 10:20

 

 

내 풀이

걍 근본없이 막 풀고 틀리면 보완하는 식으로 풀었음. 

특히 마지막 문자 때문에 if문을 추가해주었다. 

public class Main {

    public void solution(String s) {
        StringBuilder sb = new StringBuilder();
        int count = 1;
        for (int i = 1; i < s.length(); i++) {
            if (s.charAt(i-1) != s.charAt(i)) {
                sb.append(s.charAt(i - 1));
                if (count != 1) sb.append(count);
                count = 1;
                if (i== s.length()-1) {
                    sb.append(s.charAt(i));
                    if (count != 1) sb.append(count);
                }
            } else {
                count++;
                if (i== s.length()-1) {
                    sb.append(s.charAt(i));
                    if (count != 1) sb.append(count);
                }
            }
        }
        System.out.println(sb);

    }

    public static void main(String[] args) {
        Main T = new Main();
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        T.solution(str);
    }
}

 

강사님 풀이

깔끔합니다. 마지막 문자를 위해 뒤에 " " 공백을 넣어줌. 

public class Main2 {

    public void solution(String s) {
        String answer = "";

        // 이 부분이 중요, 뒤에 " " 공백을 넣어줌
        s = s + " ";

        int cnt = 1;
        for (int i = 0; i < s.length()-1; i++) {
            if (s.charAt(i) == s.charAt(i+1)) {
              cnt++;
            } else {
                answer += s.charAt(i);
                if (cnt > 1) answer += String.valueOf(cnt);
                cnt = 1;
            }
        }
        System.out.println(answer);
    }

    public static void main(String[] args) {
        Main2 T = new Main2();
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        T.solution(str);
    }
}

'알고리즘 > 인프런_자바코테강의' 카테고리의 다른 글

인프런 13. 큰 수 출력하기 (Java)  (0) 2022.03.30
인프런 12. 암호(JAVA)  (0) 2022.03.30
인프런 10. 가장 짧은 문자 거리 (Java)  (0) 2022.03.26
인프런 9. 숫자만 추출 (Java)  (0) 2022.03.25
8. 유효한 팰린드롬  (0) 2022.03.25
    '알고리즘/인프런_자바코테강의' 카테고리의 다른 글
    • 인프런 13. 큰 수 출력하기 (Java)
    • 인프런 12. 암호(JAVA)
    • 인프런 10. 가장 짧은 문자 거리 (Java)
    • 인프런 9. 숫자만 추출 (Java)
    고구마와 감자
    고구마와 감자
    Amor DevFati는 김연자-Amor Fati에 Development(개발)의 Dev 를 첨가하여 만든 이름

    티스토리툴바