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
반응형
'PS > Programmers' 카테고리의 다른 글
[level1, Stack/Queue] 같은 숫자는 싫어 (0) | 2023.03.20 |
---|---|
[level1, 유클리드 호제법] 최대공약수와 최소공배수 (0) | 2023.03.19 |
[level1, array] 행렬의 덧셈 (0) | 2023.03.19 |
[level1, sort] 문자열 내림차순으로 배치하기 (0) | 2023.03.19 |
[level1, Map] 신고 결과 받기 (0) | 2023.03.16 |