PS/Programmers

[level1, StringBuilder] 수박수박수박수?

git-sun 2023. 3. 18. 22:58

 

1. 문제

 

 

 

 

 

2. 문제 해결 논리

1. 문제 이해

  • 주어진 것
    • int n    //반복할 횟수
  • 요구되는 것
    • String //수, 박을 반복하는 문자열

2. 데이터 구조 결정

  • StringBuilder 사용
    • 문자열을 동적으로 생성하고 수정할 때 유용한 클래스
    • String은 수정 불가하므로 문자열을 수정할 때마다 새로운 객체가 생성됨. 따라서 메모리 낭비와 성능 저하
    • StringBuilder의 주요 메소드
      • append() : 문자열 뒤에 추가
      • insert() : 지정된 위치에 삽입
      • delete() : 지정된 시작과 끝 인덱스 사이의 문자열 삭제
      • replace() : 지정된 시작과 끝 인덱스 사이의 문자열을 다른 값으로 대체
      • reverse() : 문자열을 거꾸로 뒤집기
      • toString() : StringBuilder 객체를 String 객체로 변환하여 반환

3. 알고리즘 설계

  • 문자열의 길이 n만큼 반복하여, 짝수의 인덱스에는 "수"를, 홀수의 인덱스에는 "박"을 추가하는 방식으로 설계

 

 

 

 

 

3. 코드 구현

import java.util.ArrayList;
import java.util.List;

class Solution {
    public String solution(int n) {
        StringBuilder sb = new StringBuilder();

        for (int i = 0; i < n; i++) {
            if (i % 2 == 0) {
                sb.append("수");
            } else {
                sb.append("박");
            }
        }


        return sb.toString();
    }
}

 

 

 

 

 

 

 

 

* Reference

https://school.programmers.co.kr/learn/courses/30/lessons/12922

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

반응형